Halcon彩色线序检查
read_image (Image20231227151141, 'D:/image/bilibili/photo/屏幕截图 2023-12-27 151141.png')
decompose3 (Image20231227151141, Image1, Image2, Image3)
get_image_size (Image1, Width, Height)
*red
sub_image (Image1, Image2, ImageSub1, 2, 0)
*yellow
sub_image (Image2, Image3, ImageSub2, 2, 0)
*blue
sub_image (Image3, Image1, ImageSub3, 1, 0)
threshold (ImageSub3, ImageSub3, 128, 255)
*将region转为图像,便于后续add_image
region_to_bin(ImageSub3, Binary, 254, 0, Width, Height)
add_image (ImageSub1, ImageSub2, ImageResult, 1, 0)
add_image (Binary, ImageResult, ImageResult, 1, 0)
threshold (ImageResult, Region, 250, 255)
connection (Region, ConnectedRegions)
opening_circle (Region, RegionOpening, 13.5)
reduce_domain (ImageResult, RegionOpening, ImageReduced)
threshold (ImageReduced, Region1, 128, 255)
connection (Region1, ConnectedRegions1)
count_obj (ConnectedRegions1, Number)
*排序
sort_region (ConnectedRegions1, SortedRegions, 'first_point', 'true', 'column')
dev_display (Image20231227151141)
for Index := 1 to Number by 1
select_obj (SortedRegions, ObjectSelected, Index)
reduce_domain (Image20231227151141, ObjectSelected, ImageReduced1)
smallest_rectangle2 (ObjectSelected, Row, Column, Phi, Length1, Length2)
intensity (ObjectSelected, Image20231227151141, Mean, Deviation)
*根据灰度值确认颜色
if(Mean<50)
disp_message (200000, '蓝色'+Mean, 'Image20231227151141', Row, Column-20, 'black', 'true')
elseif(Mean>200)
disp_message (200000, '红色'+Mean, 'Image20231227151141', Row, Column+20, 'black', 'true')
else
disp_message (200000, '黄色'+Mean, 'Image20231227151141', Row, Column-50, 'black', 'true')
endif
endfor