29.1、形态学----综合实例

目的:根据形态学相关操作,算出图中边界粘连一起小石头的个数以及每个小石头的面积。

 

 

Halcon代码:

read_image (Dd, 'C:/dd.JPG')

*设置ROI

draw_region (Region, 3600)

reduce_domain (Dd, Region, ImageReduced)

*转化灰度图

rgb1_to_gray (ImageReduced, GrayImage)

*阈值分割

threshold (GrayImage, Regions, 3, 76)

*连通性分析

connection (Regions, ConnectedRegions)

*填补空洞

fill_up (ConnectedRegions, RegionFillUp)

*腐蚀使细小链接的region分开

erosion_circle (RegionFillUp, RegionErosion, 35)

*再进行连通性分析

connection (RegionErosion, ConnectedRegions1)

*用同样的结构元素进行膨胀,使其拓扑结构不发生改变

dilation_circle (ConnectedRegions1, RegionDilation, 35)

*筛选并计算面积

select_shape (RegionDilation, SelectedRegions, 'area', 'and', 19278.9, 65000)

*显示字体

sort_region (SelectedRegions, FinalBalls, 'first_point', 'true', 'column')

area_center (FinalBalls, Area, Row, Column)

 

dev_display (Dd)

dev_display (FinalBalls)

 

 

Num:=|Area|

disp_message (3600,'石头个数:'+Num, 'image', 450,1000, 'white', 'false')

 

for i := 1 to Num by 1

disp_message (3600, Area[i-1], 'image', Row[i-1]-50,max([Column[i-1]-60,0]), 'white', 'false')

 

endfor

结果:

posted @ 2022-05-09 20:33  ihh2021  阅读(93)  评论(0)    收藏  举报