Halcon:腐蚀或开运算后region个数并未改变


1. 问题

  现有如下图片,对其进行腐蚀并统计前后region个数。

* 读取图片并设置窗口
read_image (Image, 'C:/Users/lenovo/Desktop/1.PNG')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_set_draw ('margin')
dev_set_line_width (2)
* dev_display (Image)

* 将RGB三通道图片转换成单通道图片
decompose3 (Image, Blue, Green, Red) 
* 阈值化
threshold (Red, Regions, 0, 230)
* 分割区域
(Regions, ConnectedRegions)
count_obj (ConnectedRegions, Number)
dev_display (ConnectedRegions)
disp_message (WindowHandle, 'before: '+Number, 'window', 0, 0, 'black', 'true')
* 膨胀图片
erosion_circle (ConnectedRegions, RegionErosion, 1.5)
count_obj (RegionErosion, Number1)
dev_clear_window ()
dev_display (RegionErosion)
disp_message (WindowHandle, 'after  : '+Number1, 'window', 0, 0, 'black', 'true')

  erosion_circle前,region个数为16erosion_circle后,图片中可看到的region个数为8,但实际region个数仍为16

2. 分析

  在变量窗口 -> 图像变量选择ConnectedRegions,右键点击显示目录->选择...可看到腐蚀前region的详细信息。

  在变量窗口 -> 图像变量选择RegionErosion,右键点击显示目录->选择...可看到腐蚀后region的详细信息。

  比较region前后变化可发现,erosion_circle只是将region相应的值缩小为0region个数并未改变。

3. 修改方法

  先使用select_shape筛掉面积为0或中心为(0,0)的region,再用count_obj统计region个数。

* 读取图片并设置窗口
read_image (Image, 'C:/Users/lenovo/Desktop/1.PNG')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_set_draw ('margin')
dev_set_line_width (2)
* dev_display (Image)

* 将RGB三通道图片转换成单通道图片
decompose3 (Image, Blue, Green, Red) 
* 阈值化
threshold (Red, Regions, 0, 230)
* 分割区域
connection (Regions, ConnectedRegions)
count_obj (ConnectedRegions, Number)
dev_display (ConnectedRegions)
disp_message (WindowHandle, 'before: '+Number, 'window', 0, 0, 'black', 'true')
* 膨胀图片并筛选
erosion_circle (ConnectedRegions, RegionErosion, 1.5)
select_shape (RegionErosion, SelectedRegions, 'area', 'and', 1, 1000000)
count_obj (SelectedRegions, Number1)
dev_clear_window ()
dev_display (SelectedRegions)
disp_message (WindowHandle, 'after  : '+Number1, 'window', 0, 0, 'black', 'true')

猜你喜欢

转载自blog.csdn.net/qq_34801642/article/details/109096016