博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行
处理要求
查找好的圆环,检测圆环不良
程序源码
read_image ( Image , 'F:/HALCON/圆环完整性检测/6.bmp' )
rgb1_to_gray ( Image , GrayImage )
var_threshold ( GrayImage , RinRegion , 3 , 3 , 0.3 , 5 , 'light' )
connection ( RinRegion , ConnectedRegions ) select_shape ( ConnectedRegions , SelectedRegions , [ 'area' , 'width' , 'height' ] , 'and' , [ 100 , 25 , 25 ] , [ 350 , 35 , 35 ] )
dilation_circle ( SelectedRegions , RegionDilation , 1.5 )
fill_up ( RegionDilation , RegionFillUp )
select_shape ( RegionFillUp , SelectedRegions1 , 'area' , 'and' , 600 , 850 )
intersection ( SelectedRegions1 , RegionDilation , RegionIntersection )
count_obj ( RegionIntersection , Number ) gen_empty_obj ( goodRegion )
circularityIn: = [ ]
circularityOut: = [ ]
for index: = 1 to Number by 1 select_obj ( RegionIntersection , ObjectSelected , index ) fill_up ( ObjectSelected , OuterRegion ) circularity ( OuterRegion , OutCircularity ) circularityOut: = [ circularityOut,OutCircularity ] difference ( OuterRegion , ObjectSelected , InnerRegion ) circularity ( InnerRegion , InnerCircularity ) circularityIn: = [ circularityIn,InnerCircularity ] if ( OutCircularity > 0.87 and InnerCircularity > 0.87 ) concat_obj ( ObjectSelected , goodRegion , goodRegion ) endif
endfor
dev_display ( GrayImage )
dev_display ( goodRegion )
处理结果
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 分割线
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
博主简介: 工业自动化上位机软件工程师、机器视觉算法工程师、运动控制算法工程师。目前从业于智能制造自动化行业。 博主邮箱:2296776525@qq.com