2020-12-09 17:59:45
首先Hu矩是干嘛得呢?用hu矩来匹配图像下面是计算hu矩的过程 概念先了解一下吧普通矩 -----》0阶矩(m00) :目标区域的质量1阶矩(m01,m10) :目标区域的质心2阶矩(m02,m20,m11) :旋转半径3阶矩(m03,m30,m12,m21) :目标的方位和斜度,反应目标中心矩:构造平移不变性 ---------》 质心坐标:x = m10/m00 y = m01/m00;归一...
2020-12-08 21:02:52
引言:C#勇哥注:所谓的3d相机标定并不是指的3d相机的标定,而是指的是3d空间做相机的标定,这个相机仍然是2D相机。
halcon的这套标定方法,同时可以应对测量、手眼标定。
并且由于是在3d空间做标定,因此你在做测量的时候相机和拍摄平面可以不是完全垂直,
或者物料可以任意方向倾斜(当然你的相机的景深要能做得到)。
如果你是做机器人手眼标定,这套标定方法无论是hand to eye,还是...
2020-12-08 08:59:15
(一) 开多个窗口,显示不同的内容这种需要一般来讲主要用于演示或者调试的需要。* Image Acquisition 01: Code generated by Image Acquisition 01
list_files ('D:/资料/', ['files','follow_links'], ImageFiles)
tuple_rege...
2020-12-06 22:55:51
引言:C#勇哥注:所谓的3d相机标定并不是指的3d相机的标定,而是指的是3d空间做相机的标定,这个相机仍然是2D相机。
halcon的这套标定方法,同时可以应对测量、手眼标定。
并且由于是在3d空间做标定,因此你在做测量的时候相机和拍摄平面可以不是完全垂直,
或者物料可以任意方向倾斜(当然你的相机的景深要能做得到)。
如果你是做机器人手眼标定,这套标定方法无论是hand to eye,还是...
2020-12-06 20:10:23
引言:C#勇哥注:所谓的3d相机标定并不是指的3d相机的标定,而是指的是3d空间做相机的标定,这个相机仍然是2D相机。
halcon的这套标定方法,同时可以应对测量、手眼标定。
并且由于是在3d空间做标定,因此你在做测量的时候相机和拍摄平面可以不是完全垂直,
或者物料可以任意方向倾斜(当然你的相机的景深要能做得到)。
如果你是做机器人手眼标定,这套标定方法无论是hand to eye,还是...
2020-12-06 10:25:23
calibrate_cameras名称calibrate_cameras —通过同时最小化过程确定所有相机参数。签名calibrate_cameras(::CalibDataID:错误)描述操作员calibrate_cameras计算CalibDataID中指定的校准数据模型的内部和外部摄像机参数 。有关摄像机参数的详细说明,请参见“摄像机参数”一节。校准数据模型描述一个或多个摄像机的设置,并在创...
2020-12-05 22:17:50
引言:C#勇哥注:所谓的3d相机标定并不是指的3d相机的标定,而是指的是3d空间做相机的标定,这个相机仍然是2D相机。
halcon的这套标定方法,同时可以应对测量、手眼标定。
并且由于是在3d空间做标定,因此你在做测量的时候相机和拍摄平面可以不是完全垂直,
或者物料可以任意方向倾斜(当然你的相机的景深要能做得到)。
如果你是做机器人手眼标定,这套标定方法无论是hand to eye,还是...
2020-12-05 20:52:20
引言:勇哥注:所谓的3d相机标定并不是指的3d相机的标定,而是指的是3d空间做相机的标定,这个相机仍然是2D相机。
halcon的这套标定方法,同时可以应对测量、手眼标定。并且由于是在3d空间做标定,
因此你在做测量的时候相机和拍摄平面可以不是完全垂直,
或者物料可以任意方向倾斜(当然你的相机的景深要能做得到)。
如果你是做机器人手眼标定,这套标定方法无论是hand to eye,还是ey...
2020-12-04 09:48:03
这个机器人系列的教程,有些会转载,有些勇哥会自己写。完全重复造轮子有些浪费精力。正文开始==================================epson的四轴机器人一般不用示教器,而是使用Epson Rc软件在电脑上进行示教。这款软件似乎在官网上找不到下载地址。你只能向你的供应商去索取,或者向某人索取,你懂的。Epson rc5 的手册之类去下面的网址下载https://epson....
2020-12-02 17:22:47
gen_image_to_world_plane_map 名称gen_image_to_world_plane_map —生成一个投影图,该投影图描述图像平面与世界坐标系的平面z = 0之间的映射。签名gen_image_to_world_plane_map(:地图:CameraParam,WorldPose,WidthIn,HeightIn,WidthMapped,HeightMapped,缩放...
2020-12-02 16:51:44
生成的一些图形对象,如 gen_circle,gen_rectangle1生成的圆和矩形,当这些对象的范围(region区域) 超出图像的大小范围时,是否剪切掉超出图像大小范围的部分。'true'表示剪切掉,'false'反之;halcon学习网上的例子: http://www.ihalcon.com/read-6414.html相似的有,模板边界处理:set_sy...
2020-11-30 20:34:44
outline_to_world_plane_xld 将XLD轮廓转换为世界坐标系的平面z = 0。签名contour_to_world_plane_xld(轮廓:ContoursTrans:CameraParam,WorldPose,刻度:)描述操作者contour_to_world_plane_xld变换轮廓在给定的点轮廓到在世界上平面z = 0坐标系和在返回该3D轮廓点ContoursTra...
2020-11-30 07:24:12
get_calib_data_observ_points 名称get_calib_data_observ_points —从校准数据模型中获取基于点的观测数据。签名get_calib_data_observ_points(:::CalibDataID,CameraIdx,CalibObjIdx,CalibObjPoseIdx:行,列,索引,姿势)描述操作员get_calib_data_observ...
2020-11-30 07:23:25
set_origin_pose 名称set_origin_pose —转换3D姿势的原点。签名set_origin_pose(::PoseIn,DX,DY,DZ:PoseNewOrigin)描述set_origin_pose 用DX, DY和DZ给定的向量转换3D姿势PoseIn的原点,并在PoseNewOrigin中返回结果。注意,相对于姿势本身的局部坐标系执行平移。例如,如果 PoseIn在相...
2020-11-30 07:22:22
image_points_to_world_plane名称image_points_to_world_plane —将图像点转换为世界坐标系的平面z = 0。签名image_points_to_world_plane(:CameraParam,WorldPose,行,列数,刻度:X,ÿ)描述运算符image_points_to_world_plane在世界坐标系中将在Rows和Cols中给出的图像...
2020-11-30 07:21:19
get_calib_data名称get_calib_data —查询在校准数据模型中存储或计算的数据。签名get_calib_data(::CalibDataID,ItemType,ItemIdx,DataName:DataValue)描述使用运算符get_calib_data,可以查询校准数据模型CalibDataID的数据。请注意,在下文中,所有与“姿势”相关的数据都是相对于模型参考相机的坐标...
2020-11-30 07:19:50
find_calib_object名称find_calib_object —查找HALCON校准板,并在校准数据模型中设置提取的点和轮廓。签名find_calib_object(图片:CalibDataID,CameraIdx,CalibObjIdx,CalibObjPoseIdx,GenParamName,GenParamValue:)描述find_calib_object在图像中从校准数据模...
2020-11-28 23:33:31
最近做了个项目,遇到一个问题,就是在创建形状匹配模板时候,干扰太多,像麻绳一样。使用自定义区域去消除吧,因为轮廓长,边缘干扰距离近,操作起来不方便;使用CAD图形创建模板吧,又因为产品随意性比较强,每次换产品都要从新画模板。最终决定使用手绘模板的方式解决这个问题。halcon手绘形状匹配模板手绘形状匹配模板为了避免大家产生理解歧义,这里对手绘形状匹配模板做一个解释。所谓手绘形状匹配模板,就是在图像...
2020-11-28 23:32:23
处理要求:根据客户给的宽度,计算出电路宽度太窄的为NG原图:处理程序:read_image (Image, '1.png')rgb1_to_gray(Image, GrayImage)threshold(GrayImage, Region, 130, 255)connection (Region, ConnectedRegions)select_shape(ConnectedReg...
2020-11-28 23:31:05
halcon相机标定完成后,世界坐标系原点在标定板的中间,如果要自定义坐标系原点该如何操作如图:方法1使用仿射变换*pose_to_hom_mat3d (FinalPose, HomMat3D)*hom_mat3d_translate_local (HomMat3D, dx, dy, 0, HomMat3DTranslate)*hom_mat3d_rotate_local (HomMat3DTra...
2020-11-28 16:53:16
处理要求测量圆环同心度处理源码read_image (Image, 'C:/Users/22967/Desktop/图像Barrel 20201024/201024 手机行业 摄像头检测/Barrel 背光/Pic_2020_10_24_095951_blockId#20579.bmp')
dev_close_window ()
dev_open_window_fit_imag...
2020-11-28 16:47:28
处理要求椭圆/圆环(产品易变形,为椭圆)内外圆毛刺(凸起)缺口(凹陷)检测。处理方法1方法一思路1、这是一个圆环产品检测,我们可以通过产品区域与标准圆环进行比较得出不良区域。2、为了避免误检、误判,我们可以通过区域筛选阈值偏移的方法滤除干扰区域,可以将标准圆环放大消除一些圆度导致干扰。3、根据不同用户的精度要求,可以通过调节缺陷面积进行筛选。4、方法1的代码量有点多,但是更贴近工业现场使用。方法一...
2020-11-28 15:41:44
(一)halcon标定步骤1、创建标定数据模型使用算子 create_calib_data( : : CalibSetup, NumCameras, NumCalibObjects : CalibDataID)CalibSetup:创建的内容NumCameras:相机个数NumCalibObjects :标定项目数CalibDataID:标定句柄例如:create_calib_data (‘cal...
2020-11-28 14:13:42
halcon标定助手里选择摄像机模型时,要你选择面阵相机的类型,有:面扫描(除法)、面扫描(多项式)由于翻译的问题,这两种类型有时也称为:division(分工)模型和polynomial(多项式)模型下面是两者的区别:3D相机模型面扫描针孔相机:面扫描相机使用一个镜头来进行中心投影,图像可能会出现径向和切向畸变。面扫描远心相机:面扫描相机使用一个远心镜头来进行平行投影,图像可能会出现径向和切向畸...
2020-11-27 08:18:12
Halcon中增强图像的对比度也是预处理中的一环,主要有如下方式:1. 灰度变换a. scale_image 原理:可以理解为用一个模板扫描图像中的每一个像素,模板中像素最大值和最小值的差作为模板中心像素点的值。 作用:拉开图像的对比度,让图像中黑的地方更黑,亮的地方更亮。b. scale_image_max:将灰度值拉伸到0-2552. 增强图像对比度a. emphasize...
2020-11-26 23:23:41
名称calibrate_hand_eye —执行手眼校准。原型calibrate_hand_eye( : : CalibDataID : Errors)描述操作员根据校准数据模型确定机器人(“手”)相对于相机或3D传感器(“眼睛”)的3D姿势。借助确定的3D姿态,可以将摄像机坐标系中的校准对象的姿态转换为机器人的坐标系,然后可以例如抓取被检零件。机器人摄像机(手眼)系统有两种可能的配置:摄像机可以...
2020-11-25 19:50:25
机器人奇点是个让生产商和用户都很头痛的问题,碰上了,严重点可能造成“机毁人亡”。那到底什么是机器人奇点,它是怎么形成的,怎么样才能避免机器人奇点?下面这篇文章由Robotiq公司的Alex Owen-Hill撰写,它能让你全面了解这些烦人的问题。如果你对科学感兴趣,“奇点”很可能会让你想起黑洞。自从美国LIGO实验室证明了引力波的存在之后,黑洞就被媒体广泛报道,为大众所熟知。根据物理学家推论,在黑...
2020-11-25 15:57:22
这个功能是region里面的一个偏门的功能。纯了解一下,暂时不知道能有啥子用途。行程编码(Run-Length Encoding)
仅存储一个像素值以及具有相同颜色的像素数目的图象数据编码方式称为行程编码,或称游程编码,常用RLE(Run-Length Encoding)表示。
该压缩编码技术相当直观和经济,运算也相当简单,因此解压缩速度很快。
RLE压缩编码尤其适用于计算机生成的图形图像,...
2020-11-25 09:09:13
不改变坐标原点的位置和单位长度,只改变坐标轴方向的坐标系的变换,叫做坐标轴的旋转. 设点M在原坐标系中的坐标为(x,y),对应向量的模为r,幅角为.将坐标轴绕坐标原点,按照逆时针方向旋转角形成新坐标系,点M在新坐标系中的坐标为(如图2-4),则 由此得到坐标轴的旋转的坐标变换公式 平面上一点x1,y1,绕平面上另一点x2,y2顺时针旋转θ角度 ,怎么求旋转后的x1,y1对应的坐标x,yx=(x...
2020-11-25 08:35:55
阈值分割引言C#阈值分割有非常多的算法,大体上分为全局和局部算法。
全局算法包括全局固定阈值和基于图像直方图的阈值,局部算法包括局部动态阈值分割。
基于图像直方图阈值分割的方法也有很多,比如常规的高斯滤波双峰法,OTSU大津法。
但是这类所有的法都基于一个假设:图像是有前景和背景的,待分割目标处于背景中,即图像直方图是双峰的。
如果因为非均匀光照导致待分割目标不处于背景或前景中,即图像直方...