寻找特征步步逼近
选中一块区域,查看这个区域的特征:

比如可以查看这个区域的面积:

再配合面积选择的算子:
select_shape (SelectedRegions, SelectedRegions1, 'area', 'and', 7500, 99999)
完美~~~
select_shape (SelectedRegions, SelectedRegions1, 'outer_radius', 'and', 30, 40)
'outer_radius' 表示使用外接圆半径进行查找,这个是一个很好用的选项!
最常用,最直接的算子:对图形按灰度值进行分割!
(Region区域,图像的一个子集。)
threshold (Image, Region, 128, 255) *筛选出灰度值在128~255之间的区域
为了快速的选择合适的灰度,我们通常会用到一个工具:灰度直方图,是对像素的一个灰度统计:
halcon提供这样的工具:

图中红色区域就代表被当前灰度范围选中的部分。
将Region进行打散以便选择过滤
connection (Region, ConnectedRegions)

被打散的版块通过彩色显示~~~
有打散就有联合:union1
union1 (ConnectedRegions, RegionUnion)
将打散的块,联合成一个整体。
通过够不够方(通过更换参数,也可以选择够不够圆),将目标显示出来:
select_shape (ConnectedRegions, SelectedRegions, 'rectangularity', 'and', 0.9, 1)
筛选出够方的区域:

填补没有选择到的洞
fill_up(SelectedRegions1, RegionFillUp)

通过区域将图像抠出来,俗称抠图
reduce_domain (Image, RegionFillUp, ImageReduced)
通过参数列表也能看到,第二个参数位区域,输出的参数图片。该图片以外的区域都将变成无效区域。
通过这个算子,可以清晰的认识到区域(Region)和图片(image)区别!
Region:(符合一定条件的)二值化区域。
体会一下 image-》Region-》image 的过程。
显示边框还是填充由你决定

右键图片-》更新窗口-》在单步模式-》清空并显示:

作用是每次单步清除上一次的结果,显示当前作用效果,可以看着自己的选择一点点在靠近目标。
改变形状
shape_trans , 可将图形改变为圆形(外接圆,内接圆),方形,还有“凸性” ‘convex’。
凸性,就是将凸出的最高点连接起来了:

图像处理与特征选择:从区域到形状的智能分析
这篇博客详细介绍了在图像处理中如何通过选择特定区域的特征,如面积和外接圆半径,来精确地筛选目标。内容涵盖了使用Halcon库的函数,如select_shape和threshold,进行图像分割和形状筛选。此外,还提到了灰度直方图在确定合适灰度阈值中的作用,以及connection、union1和fill_up等算子在区域操作中的应用。最后,讨论了如何通过shape_trans转换形状,并强调了区域与图像的区别,展示了从图像到区域再返回图像的过程,为视觉检测提供了实用的方法。

9197





