项目需求:
此项目halcon检测线束行业的焊接点处有无粘连,并显示。
素材如下:
检测后的效果如下:
halcon代码如下:
read_image (Image8, '碗光 (3)')
dev_set_draw ('fill')
set_display_font (200000, 25, 'mono', 'true', 'false')
rgb1_to_gray (Image8, GrayImage)
threshold (GrayImage, Regions, 0, 75)
fill_up (Regions, RegionFillUp)
opening_rectangle1 (RegionFillUp, RegionOpening, 10, 10)
connection (RegionOpening, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 0, 1.80556e+006)
select_shape (SelectedRegions, SelectedRegions1, ['area','rectangularity'], 'and', [67870.4,0.68426], [95833.3,1])
smallest_rectangle2 (SelectedRegions1, Row, Column, Phi, Length1, Length2)
shape_trans (SelectedRegions1, RegionTrans, 'rectangle2')
gen_rectangle2 (Rectangle, Row-418, Column-90, Phi, Length1, Length2-9)
reduce_domain (GrayImage, Rectangle, ImageReduced)
mean_image (ImageReduced, ImageMean, 15, 15)
threshold (ImageMean, Region, 125, 255)
connection (Region, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions2, 'area', 'and', 176.85, 10000.81)
smallest_rectangle2 (SelectedRegions2, Row1, Column1, Phi1, Length11, Length21)
gen_rectangle2 (Rectangle1, Row1, Column1, Phi1, Length11, Length21)
sort_region (Rectangle1, SortedRegions, 'first_point', 'false', 'row')
count_obj (SortedRegions, Number1)
dev_set_draw ('margin')
count_obj (Rectangle1, Number)
dev_display (GrayImage)
dev_display (Rectangle1)
status:=false
dev_set_line_width (3)
for Index := 1 to Number1 by 1
select_obj (SortedRegions, ObjectSelected, Index)
area_center (ObjectSelected, Area, Row2, Column2)
if (Area>=1800)
status:=true
dev_set_color ('red')
gen_circle (Circle, Row2, Column2, 50.5)
endif
endfor
if (status==false)
set_tposition (200000, 100, 100)
write_string (200000, 'OK品---'+'焊点个数:'+ Number)
else
set_tposition (200000, 100, 100)
write_string (200000, 'NG品---'+'焊点个数:'+ Number)
endif