71.复习

read_image (Image2, 'E:/机器视觉AI+C#+Halcon/03、Halcon图像分割01/作业/2.png')
*抽取三通道
decompose3 (Image2, R, G, B)
*图像相减
sub_image (R, B, ImageSub, 3, 0)
*分割
binary_threshold (ImageSub, Region, 'max_separability', 'light', UsedThreshold)
*闭合运算
closing_circle (Region, RegionClosing, 13.5)
*去除杂点
opening_circle (RegionClosing, RegionOpening, 5.5)
*变形
*shape_trans (RegionOpening, RegionTrans, 'rectangle2')
*抠图
*reduce_domain (ImageSub, RegionTrans, ImageReduced)
*生成一个新的区域从左上角开始直到移动到右下角
dilation_rectangle1 (RegionOpening, RegionDilation, 499, 1)
*断开
connection (RegionDilation, ConnectedRegions)
count_obj (ConnectedRegions, Number)
dilation_rectangle1 (RegionOpening, RegionDilation1, 1, 499)

*循环
*把所有相交的对象进行联合一起
gen_empty_region (EmptyRegion)
for Index := 1 to Number by 1
select_obj (ConnectedRegions, ObjectSelected, Index)
intersection (ObjectSelected, RegionDilation1, RegionIntersection)
concat_obj (EmptyRegion, RegionIntersection, EmptyRegion)

endfor
*这时候就出来了
union1 (EmptyRegion, RegionUnion)

*腐蚀一下
erosion_circle (RegionUnion, RegionErosion, 3.5)
difference (RegionErosion, RegionOpening, RegionDifference)
*开运算
opening_circle (RegionDifference, RegionOpening1, 3.5)
connection (RegionOpening1, ConnectedRegions1)
sort_region (ConnectedRegions1, SortedRegions, 'character', 'true', 'row')
count_obj (SortedRegions, Number1)
*再第几行
for Index1 := 1 to Number1 by 1
select_obj (SortedRegions, ObjectSelected1, Index1)
for Index2 := 1 to Number by 1
select_obj (ConnectedRegions, ConnectedRegions1, Index2)
intersection (ObjectSelected1, ConnectedRegions1, RegionIntersection1)
area_center (RegionIntersection1, Area, Row, Column)
if(Area>100)
dev_get_window (WindowHandle)
disp_message (WindowHandle, Index2, 'Image2', Row, Column, 'black', 'true')

endif

endfor

endfor

posted @ 2026-10-31 06:24  浮云1  阅读(4)  评论(0)    收藏  举报