R-G-B
计算机硕士,机器视觉、图像处理
展开
-
Halcon 循环找出多张电路板上的焊盘 (PCB板的有效区域在图中位置不一样)
如图,循环找出下面四张电路板上的 焊盘;四张图的有效区域在图中的位置不一样;且图中还有和焊盘区域相近的矩形黑块;为了提高效率,先找到产品(电路板);再找小黑块,再从中减去小矩形块;先找到产品(电路板)原创 2023-06-16 21:02:51 · 209 阅读 · 0 评论 -
Halcon 仿射变换(仿射变换affine_trans_region、刚性仿射变换 vector_angle_to_rigid、图像仿射变换affine_trans_image )
6)刚性仿射变换 vector_angle to_rigid 对图像,区域进行仿射变换7)扩展图像变换affine trans image。1)区域的任意变换affine_trans_region。2)创建二维变换矩阵hom mat2d identity。3)平移hom_mat2d_translate。5)旋转hom_mat2d_rotate。4)缩放hom_mat2d_scale。原创 2023-06-12 22:03:56 · 1140 阅读 · 1 评论 -
Halcon 光度立体技术 读取轮胎上的印迹字母
这个程序演示了使用光度立体技术,以低成本的设置读取轮胎上的印迹字母。即使光源不是很均匀,它们的方向也只是非常粗略地知道,文本也可以被稳健地读取。原创 2023-06-12 17:07:20 · 191 阅读 · 0 评论 -
Halcon 光盘一维码识别 曲面一维码识别 识别光盘上的条形码(极坐标变换,将曲面的一维码转成矩形的一维条码)
如图 识别光盘上的条形码。原创 2023-06-12 11:12:28 · 487 阅读 · 0 评论 -
Halcon 几何变换(平移 move_region、缩放 zoom_region、镜像 mirror_region、倒置 transpose_region、极坐标与笛卡尔坐标互转 polar_tr)
1、几何变换。1)平移 move_region;可以做区域位置平移,平移后相减可以得到区域某一边的边缘。2)缩放 zoom_region;3)镜像 mirror_region;4)倒置 transpose_region;5)极坐标与笛卡尔坐标互转 polar_trans_region,polar_trans_region_inv;原创 2023-05-28 14:20:25 · 1225 阅读 · 1 评论 -
Halcon 工业开发示例 求产品灯珠与矩形外边框的距离
可以看到选中的区域,并没有完全包含我们的目标区域,如图求产品 灯珠(独立的圆),与矩形外边框的距离。为了鲁棒性,将选中区域外扩一圈,使用膨胀算子。对于拍摄不好的图片,效果就会不好,原创 2023-05-23 21:41:34 · 97 阅读 · 0 评论 -
Halcon 距离计算算子 (distance_pp、distance_pl、distance_pr、distence_Ir、distance_rr、distance_ss)
区域间距离点到点 distance_pp点到直线 distance_pl点到区域的最长最短 distance_pr直线到区域最长最短 distence_Ir(平面度)平面区域与区域最短 distance_rr线到线最长最短distance_ss。原创 2023-05-23 16:54:23 · 2053 阅读 · 0 评论 -
Halcon 保存/读取ROI区域 生成空对象,向空对象中添加对象
ROI区域保存成功后,会生成一个region.hobj文件。工程目录下 .hdev文件同目录(默认路径)示例,在图像上绘制ROI区域,并保存;然后读取到该区域,并向区域添加对象 圆。保存区域读取区域(小件左右检测)生成空对象,向空对象中添加对象。原创 2023-05-23 15:31:08 · 228 阅读 · 0 评论 -
Halcon 中 smallest_rectangle1()、smallest_rectangle2() 区别 ?rectangle1 、 rectangle2 区别?
(Length1>短边Length2) Length2 >= 0.0 && Length2原创 2023-05-23 12:30:09 · 787 阅读 · 0 评论 -
Halcon 中rectangle1 和 rectangle2 区别
生成一个平行于坐标轴的矩形,它可以生成一个或多个矩形Rectangle是输出对象,即生成的矩形区域Row1是输入变量,即左上角点的行表示Column1是输入变量,即左上角点的列表示Row2是输入变量,即右下角点的行表示Column2是输入变量,即右下角点的列表示创建一个任意方向的矩形ROI:输出的矩形区域;Row , Column:矩形中心坐标点;Angle:与水平面的夹角;Length1 , Length2:矩形区域长和髙的一半。原创 2023-05-19 21:15:16 · 648 阅读 · 0 评论 -
Halcon 画 ROI 区域并生成区域(draw_circle,gen_circle,draw_ellipse, gen_ellipse,draw_rectangle1, gen_rectangl)
1)常用的画区域,生成区域 (draw_circle,gen_circle,draw_ellipse, gen_ellipse,draw_rectangle1, gen_rectangle1, draw_rectangle2, gen_rectangle2, draw_region, draw_line,gen_region_line, gen_region points等);draw_算子,运行到该行后,需用鼠标画出需要形状,然后单击右键,停止并确认绘制;矩形轮廓边缘 像素为单位。原创 2023-05-19 20:48:14 · 858 阅读 · 0 评论 -
Halcon 中_xld算子的概念与应用? select_shape_std 和 select_shape_xld区别?
XLD(eXtended Line Descriptions):XDL就是一个轮廓函数,它不是基于像素,人们通常称他为亚像素,只不过它比像素更精确,可以精确到像素内部的一种描述。在Halcon中,使用XLD表示亚像素的轮廓和多边形。常用edges_sub_pix算子来提取亚像素轮廓。我们都知道图片是由像素组成,当我们用halcon读取图像Image或者region的时候,获得的数据就是像素。这些数据结构都是像素级别的。原创 2023-05-19 16:45:20 · 1134 阅读 · 0 评论 -
Halcon 算子 select_shape_std 和 select_shape_xld区别
选择给定形状的区域;Regions : 输入要选择区域、SelectedRegions : 输出希望选出的区域、Shape : 输入要选出的区域的形状特征 ( 'max_area' , 'rectangle1' , 'rectangle2' )、Percent : 输入相似度( 0.0 ≤ Percent ≤ 100.0(lin) )、( 1 )、算子select_shape_std将给定区域的形状与默认形状进行比较,如果该区域具有相似的形状,将其输出给参数;原创 2023-05-19 16:42:53 · 1371 阅读 · 0 评论 -
Halcon 算子特征 Features列表 (‘row1‘、‘compactness‘、‘convexity‘、‘ra‘、‘phi‘、‘num_sides‘、‘holes_num‘、‘area_h)
area’:区域的面积‘row’:中心的行坐标‘column’:中心的列坐标‘width’:区域宽度(平行于坐标轴)‘height’:区域的高度(平行于坐标轴)‘row1’:区域左上角的行坐标‘column1’:区域左上角的列坐标‘row2’:区域右下角的行坐标‘column2’:区域右下角的列坐标‘circularity’:和圆的相似度(详细解释请看我的Halcon算子专栏中的解释circularity)转载 2023-05-19 15:51:02 · 711 阅读 · 0 评论 -
Halcon 精密铜柱 正反检测 (公司开发实例)
铜柱平面图,可以做是两个矩形,小头的矩形中心坐标的 x值(列),小于,大头矩形中心坐标的的 x值(列);分析:铜柱颜色和工作台接近,色泽较暗,对铜柱一侧打光,进行阈值分割,选取铜柱上半部分进行判断。流水线上料槽中,是滚动的的铜柱,规定小头朝左,大头朝右,为OK。为了处理方便,鼠标手动卡框选出料槽区域。流水线上 精密铜柱正反检测;下面已左边第一个铜柱为例演示。原创 2023-05-18 20:07:04 · 262 阅读 · 0 评论 -
Halcon 顶帽运算(top_hat)和底帽运算(bottom_hat)
在实际检测过程中,有时需要利用开运算或者闭运算操作的结果。顶帽运算与底帽运算就是在开运算与闭运算的基础上,来处理图像中出现的各种杂点、空洞、小的间隙、毛糙的边缘等。合理地运用顶帽运算与底帽运算,能简化操作步骤,更能有效地优化目标区域,使提取出的范围更为理想。原创 2023-05-15 18:27:26 · 1736 阅读 · 0 评论 -
Halcon 形态学开发案例 (动态阈值+闭运算+开运算) 找到产品上所有凸起的圆点
如果背景光照不均匀,操作符dyn_threshold特别有用。(简单的阈值分割是不可能的,因为背景的亮度从左到右增加。开运算(先腐蚀再膨胀:消除小得连通域,保留大的连通域),消除小斑点和圆形边缘凸起毛刺尾巴。闭运算(先膨胀再腐蚀:填充小空洞,扩大连通域),填补动态阈值后的圆形中间裂开的空洞。光照不均匀,背景和圆点 的亮度从左到右增加。首先使用dyn阈值算子分割盲文字符的凸起点。打散后,对找到的圆生成最小圆。原创 2023-05-15 15:40:46 · 180 阅读 · 0 评论 -
Halcon 形态学 开发案例 (开运算opening(先腐蚀再膨胀)、闭运算closing(先膨胀再腐蚀))
算子方法:功能:使用用户自定义的结构元素对区域进行开运算参数: Region(输入参数) :输入区域 StructElement(输入参数) :结构元素(区域) RegionOpening(输出参数) :开运算后的区域功能:使用圆形结构元素对区域进行开运算参数: Region(输入参数) :输入区域 RegionOpening(输出参数) :开运算后的区域 Radius(输入参数) :圆形结构元素的半径功能:使用矩形结构元素对区域进行开运算。原创 2023-05-13 18:31:42 · 953 阅读 · 0 评论 -
Halcon 形态学(膨胀(Dilation)、腐蚀(Erosion))
在经阈值处理提取出目标区域的二值图像之后,区域边缘可能并不理想,这时可以使用腐蚀或使膨胀操作对区域进行“收缩”或“扩张”。膨胀是对选区进行“扩大”的一种操作。其原理是使用一个自定义的结构元素,在待处理的二值图像上进行类似于“滤波”的滑动操作,然后将二值图像对应的像素点与结构元素的像素进行对比,得到的并集(进行“或”操作)为膨胀后的图像像素。算子方法:功能: 使用用户自定义的结构元素对区域进行膨胀。原创 2023-05-13 17:36:05 · 1435 阅读 · 0 评论 -
Halcon 区域变换(打散connection、填充fill_up、形状变换shape_trans、凸性 convex、骨架skeleton)
凸性区域:包含整个原区域,原区域中任意两点连线都在该区域内,这样的区域就称为原区域的凸性区域。将矩形框 设置为只显示边缘线,发现 内接圆在矩形框里面,显然这边想要的结果。要想在整个矩形区域 内接圆,必须先将矩形区域填充为实心。*注意,如果没填充的话,内接圆会有点问题。将选择出的 各子区域 填充为实心区域。外接圆,实心的不便于观察与矩形的关系;因为默认是填充的,设置为只显示边缘线。因为默认是填充的,设置为只显示边缘线。动态阈值分割后,搜有的区域是一个整体。通过面积选择,选出左下方矩形区域。原创 2023-05-13 15:18:48 · 1510 阅读 · 0 评论 -
Halcon 集合运算(差集difference、交集intersection、并集union2、打散connection与 合集 union1)
当然是只能把这7个矩形都当成一个个单独的连通区域了啊,这就是connection的作用,计算你的region里面到底有多少个子连通集,帮你把这些连通集分离成单个的.这样你就可以进行后续操作了,比如上面的7个矩形中,我想留下面积最小的那个,那就对这几个连通集都求面积,找面积最小的那个就行了。上面例子中,使用connection打散后的,将阈值区域分成了4个子区域,如果想要所有子区域合并为一个区域。使用connection打散后的,将阈值区域分成了4个子区域,即每种相同颜色的是一个子区域。计算两个区域的交集。原创 2023-05-12 17:52:26 · 1726 阅读 · 0 评论 -
Halcon 找到产品上 圆圈中的7个点
原因,大圆是圆环,而其他他的小圆是实心圆,这个圆度应该是实心圆才能准。但是发现,通过圆度,只找到了小圆,外面的大圆没有找到;由于大圆是圆环,圆度很小,故将其填充实心,在进行找圆。然后,通外接圆的半径找到大圆圈,这一步啥都没有。分析原因,通过圆度,没找到外面的大圆;惊讶,大圆的圆度怎么只有0.27呢?那,查看一下大圆的圆度是多少?找到下图 圆圈中的7个点;最后找到圆圈里面的 圆点。先找到圆圈外面的矩形,查看矩形 外接圆半径。原创 2023-05-11 13:44:06 · 601 阅读 · 0 评论 -
Halcon 阈值分割(全局阈值threshold、binary_threshold、动态阈值 dyn_threshold)、直方图
因此一张较暗图片的直方图中的数据多集中于左侧和中间部分,而整体明亮、只有少量阴影的图像则相反。在直方图界面 拖动左右范围,如③④所示,可以看到图像上被选中的区域随之变化 (其实是二值化);如图下面选中的 像素点,灰度值82,均值73,该点的像素值比均值大9,D就是要选中的线的实际宽度(像素),放大原图,数一下线宽13像素,在原图中,边框线是实心的,但是我们选中线不是实心,没有填充满;这种直方图中,横坐标的左侧为较暗的区域,而右侧为较亮的区域。offset原创 2023-05-10 14:46:35 · 821 阅读 · 0 评论 -
Halcon 亚像素检测指定区域 瑕疵 轮廓
如图,找到下图中铭牌上,面积最大的瑕疵快(认为黑点是瑕疵)在铭牌区域再次二值化,找到目标区域,并且亚像素找轮廓。借助 特征检测工具,查看目标轮廓的长度。原创 2023-05-09 16:24:13 · 199 阅读 · 0 评论 -
Halcon 检测电路板上焊盘圆点 并显示焊盘的直径
二值化减少目标范围,然后将二值化区域转变成一整个矩形,去掉上边缘部分;右下方还有一个芯片颜色也接近,选择出圆度为0.85~1之间的的连通域;再次二值化,找到检测区域的目标颜色,开运算,保留半径为15.5的圆,如图 检测电路板上焊盘圆点 并显示焊盘的直径。焊盘颜色比较黑,可以用二值化 找到对应区域;但是可以观察原图上边缘部分颜色和焊盘接近,原创 2023-05-08 17:10:43 · 305 阅读 · 0 评论 -
【Halcon】找到设备上的 标识牌
这是鼠标任意点击 红色区域,发现其他红色区域一起被选中。此时,鼠标再次单击目标区域,只有这一个区域 被选中。再次 右键 显示 SelectedRegions,二值化选择出亮区域,再通过面积选择出目标区域。使用连通域,将每个亮区域单独成为一个连通域。借助特征检测工具,查看目标区域面积。标识牌最明显的特征是比其他区域亮,此时,各个连通域用不同颜色标记。如图,找到设备上的 标识牌。窗口右键 显示 Image;再通过面积选择出目标区域;可以看到,好像没啥变化。在原图上显示出目标区域。原创 2023-05-06 10:49:58 · 457 阅读 · 0 评论 -
【Halcon】重置程序执行
点一下 工具栏的 “重置”,此时光标会回到第一行,再次点击运行,又会从第一行开始执行。程序执行完毕后,光标会停止在程序最后一行(没有设置stop()的情况下)。程序执行完毕后,光标会停止在 stop()处,此时再点运行,会接着stop()往下执行。如果,程序中设置的有stop()。此时再点运行,是没反应的。原创 2023-05-05 21:44:36 · 284 阅读 · 0 评论 -
机器视觉 与 人眼错觉
原创 2023-05-05 20:10:10 · 91 阅读 · 0 评论 -
【Halcon】新建程序 读取图片 路径设置
(图片是从网上下载的,可能是下载时修改为 png格式,原本并是不png,所以出了问题)打开示例文件,可以看到这张 名字为 fabrik的图片;以下四种方式,都适用于 图片和程序在同一目录下。单击函数名 read_image ,文件名后面 已经显示了 图片 绝对路径。后两种绝对路径,适用于图片在任何位置。没有设置路径,系统使用默认路径,此时视图读取 2.png 图片,提示 图片不是 png格式,在文件名 后面选择 图片路径。点击新程序图标,即可新建;程序另存为,会弹出保存路径。此时工程路径下并没有图片;原创 2023-05-05 17:05:33 · 825 阅读 · 0 评论 -
【Halcon】 Halcon 22.11 常用设置及界面介绍
在C盘,按照上面的路径打开文件夹,就可以看到示例程序 及 图片等文件夹件。然后,点打开程序,就可以看到示例文件路径了。第一次打开,默认繁体字。先随便打开一个示例程序。原创 2023-05-05 10:11:45 · 1791 阅读 · 0 评论 -
【Halcon】 Halcon 22.11 安装详细教程
注意:一会获取license之后,打开 halcon 软件时,不要使用 XL 版本。桌面出现了两个 Halcon 软件的图标;2.打开运行 exe 程序。6. 安装结束,桌面。.dat文件放在这里。出现下面页面,按回车。原创 2023-05-04 20:09:26 · 6849 阅读 · 0 评论 -
【Halcon】计算机视觉(CV)与机器视觉(MV)
原创 2023-05-04 16:26:46 · 195 阅读 · 0 评论