Halcon红黄蓝颜识别之阈值分割方法(第二种方法)

Halcon红黄蓝颜⾊识别之阈值分割⽅法(第⼆种⽅法)Halcon红黄蓝颜⾊识别之转RGB后阈值分割实现(仅能识别单个识别)(第⼆种⽅法)
for k :=1 to 3 by 1
采油速度read_image (Image,'C:/Users/Administrator/Desktop/halcon识别图⽚/识别红黄蓝/'+k+'.jpg')
dev_close_window ()
dev_open_window (0,0,557,416,'black', WindowHandle)
dev_display (Image)
dev_set_draw ('margin')
dev_set_line_width (3)
*RGB图像分别对应Image_R, Image_G, Image_B
decompose3 (Image, Image_R, Image_G, Image_B)
gen_empty_obj (ImageConcat)
漫友商城*将转化成的RGB三个通道图像全部放⼊ImageConcat这个空区域中
concat_obj (Image_R, Image_G, ObjectsConcat)
concat_obj (ObjectsConcat, Image_B, ImageConcat)
*下⾯三组最⼤最⼩阈值⽤于红黄蓝三种颜⾊的对应好提取的RGB图像中的⼀个
min_threshold :=[45,6,18]
max_threshold :=[65,31,47]
*此处最⼩最⼤区域完全可以⽤⼀组,此处留有数组为了留⼀定修改空间
min_area :=[100000,100000,100000]
max_area :=[500000,5000000,5000000]
try周孝德
for i :=1 to 3 by 1
select_obj (ImageConcat, ImageSelected, i)
for j :=1 to 3 by 1
threshold (ImageSelected, Regions, min_threshold[j -1], max_threshold[j -1])
opening_circle (Regions, RegionOpening,8)
*多个区域低碳哥
connection (RegionOpening, ConnectedRegions)
*⾯积选择
select_shape (ConnectedRegions, SelectedRegions,['area','circularity'],'and',[min_area[j -1],0.4937],[max_area[j -1],1])
fill_up (SelectedRegions, RegionFillUp)
shape_trans (RegionFillUp, RegionTrans,'convex')
中国电信八大基地area_center (RegionTrans, Area, Row, Column)
if(Area<150000 or Area>450000)
continue
else
a := min_threshold[j -1]
b:=max_threshold[j -1]
endif
*此处的beak是为了如果到满⾜的圆就跳出这个for循环,不了
break
endfor
if(Area<150000 or Area>450000)
continue
endif
gen_contour_region_xld (RegionTrans, Contours,'border')
fit_circle_contour_xld (Contours,'algebraic',-1,0,0,3,2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
gen_circle (Circle, Row, Column, Radius)
area_center (Circle, Area1, Row1, Column1)驯狼记
break
endfor
if(a=6 and b=31)
dev_display (Image)
dev_display (Circle)
disp_message (WindowHandle,'该圆块是黄⾊','window',0,0,'red','true')
disp_message (WindowHandle,'该圆块⾯积为:'+Area1,'window',25,0,'red','true')
disp_message (WindowHandle,'该圆块中⼼横纵坐标为:'+'('+Row1+','+Column1+')','window',50,0,'red','true')
endif
if(a=45 and b=65)
dev_display (Image)
dev_display (Circle)
disp_message (WindowHandle,'该圆块是红⾊','window',0,0,'red','true')
disp_message (WindowHandle,'该圆块⾯积为:'+Area1,'window',25,0,'red','true')
disp_message (WindowHandle,'该圆块中⼼横纵坐标为:'+'('+Row1+','+Column1+')','window',50,0,'red','true')    endif
if(a=18 and b=47)
dev_display (Image)
dev_display (Circle)
disp_message (WindowHandle,'该圆块是蓝⾊','window',0,0,'red','true')
disp_message (WindowHandle,'该圆块⾯积为:'+Area1,'window',25,0,'red','true')
disp_message (WindowHandle,'该圆块中⼼横纵坐标为:'+'('+Row1+','+Column1+')','window',50,0,'red','true')  endif
catch(Exception)
endtry
stop()
endfor

本文发布于:2024-09-21 10:28:20,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/414206.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图像   识别   采油   漫友   留有   空间
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议