@常见halcon算子及其相对应的用法讲解和使用(持续更新)
第一:颜色拆分通道trans_from_rgb。
第二条:形态学命令opening_rectangle1。
第三条:填充空白命令fill_up。
第四条:多区域颜色拆分命令connection。
第五条:特征直方图select_shape
第六条:区域选取填补shape_trans。
第七条:求取角度orientation_region。
第八条:Halcon分类器。
第九条:裁剪区域reduce_domain。
第十条:输出图像中心area_center
第十一条:显示区域中心gen_cross_contour_xld
第十二条:显示轮廓gen_contour_region_xld
第十三条:最小外接矩形smallest_rectangle2
第十四条:dyn_threshold
以下的c++代码均为halcon的源码
第一:颜色拆分通道。
/******************************************************************************/
decompose3 (Image, Red, Green, Blue)
trans_from_rgb (Red, Green, Blue, Hue, Saturation, Intensity, 'hsv')
//red:红色。green:绿色。blue:蓝色。hue:色彩度。Saturation:饱和度。Intensity:亮光强度。
/************************************************************************/
实现效果
然后我们选取需要的部分进行下一步修改。
第二条:形态学命令。
opening——【属于一个大类介绍部分功能】。
opening_rectangle1(Regions, RegionOpening, 8, 8)。(rectangle【矩形】)
对矩形选取进行形态学的清除。
清除前效果:
fill_up (RegionOpening, RegionFillUp)。关键词fill_up。
填充前:
填充后:
作用场景:多用于填充具有空白的地区,常见于瓶盖等。
第四条:多区域颜色拆分命令。
connection (RegionFillUp, ConnectedRegions)
用于拆分成不同的区域。
拆分前:
拆分后:
常搭配特征选取命令实现。
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 344471, 355529)
第五条:特征直方图
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 344471, 355529)
命令行(select_shape)。
特征选项:area【对面积】
第六条:区域选取填补。
shape_trans (RegionOpening1, RegionTrans, 'rectangle2')
命令行(shape_trans)
特点:对画面内的任意2点相连的位置均会被选中。
填补前:
填补后:
命令特点:可以使得任意2点连线区域进行填补。常用于不规则图像填补为规则图形。
第七条:求取角度。
orientation_region (RegionTrans, Phi)。
orientation_region【命令行】Phi为存放角度的值
【第二次更新】
第八条:halcon分类器。
因为关于分类器的内容很多,可以直接移步我另一个博客。
https://blog.csdn.net/m0_51559565/article/details/121923643
第九条:裁剪区域reduce_domain。
reduce_domain (Image, RegionTrans, ImageReduced)
//算子:reduce_domain
//在Image,裁剪到只剩下 RegionTrans部分,并输出为ImageReduced
第十条:输出图像中心area_center
area_center (RegionOpening, Area, Row, Column)
//是输出你的整个图像的中心而不是某一部分中心。
第十一条:显示区域中心gen_cross_contour_xld
gen_cross_contour_xld (Cross, Row, Column, 150, 0.785398)
//150为显示的中心的大小
运行前
运行后
他的作用只是显示中心,他并不会输出任何东西。
第十二条:显示轮廓gen_contour_region_xld
gen_contour_region_xld (RegionOpening, Contours, 'border')
//算子:gen_contour_region_xld
运行前
运行后
他显示的是你的图像的轮廓或者你选定图像的轮廓,在halcon中要想选定某一图像的难度是很难的,但是可以先裁剪图像在标出轮廓这样会简单很多
第十三条:最小外接矩形smallest_rectangle2
smallest_rectangle2 (RegionOpening, Row1, Column1, Phi, Length1, Length2)
//同样,这个也会是图像的外接矩形,是整个图像的。
第十四条:显示 矩形gen_rectangle2_contour_xld
gen_rectangle2_contour_xld (Rect, Row1, Column1, Phi, Length1, Length2)
//算子:gen_rectangle2_contour_xld