Halcon腐蚀例子
原图:
最终效果图:
我们要实现上面的效果,可以先去进行阈值分割把相连和不相连分开计算最后合并在一起。
read_image (Image, '1')
*把彩色图像转成灰色图像
rgb1_to_gray (Image, GrayImage)
1.阈值分割统计未粘连在一起的
threshold (GrayImage, Region, 50, 255)
*矩形开运算 矩形大小是宽度10 高度为10
opening_rectangle1 (Region, RegionOpening, 10, 10)
connection (RegionOpening, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 300, 20000)
*未连接的个数
count_obj (SelectedRegions, Number)
为粘连的木头:
数量:
2.统计连在一起的使用膨胀运算
select_shape (ConnectedRegions, SelectedRegions1, 'area', 'and', 20000, 99999)
erosion_circle (SelectedRegions1, RegionErosion, 13.5)
connection (RegionErosion, ConnectedRegions1)*膨胀运算:用于扩大物体边缘
dilation_circle (ConnectedRegions1, RegionDilation, 13.5)
count_obj (RegionDilation, Number1)
粘连的木头:
使用膨胀运算后的结果:
粘连木头的个数:
3.最后计算总体个数
*合并俩个区域
concat_obj (SelectedRegions, RegionDilation, ObjectsConcat)
*获取区域对象个数
count_obj (ObjectsConcat, Number2)
dev_display (Image)
dev_display (ObjectsConcat)
dev_get_window (WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_disp_text ('木头个数为:'+Number2, 'image', 0, 0, 'black', [], [])
最终效果图: