目录
4、对多通道图像的像素值进行平均,会发现焊接区域边缘是银色,内部是黑色,有利于区分焊接区域与未焊接区域
12、对漏焊区域进行筛选,去除细节干扰,并对漏焊区域内的不连通区域计数
1、get_system ('clip_region', Information)
2、set_system ('clip_region', 'true')
3、channels_to_image (Images, Ic)
4、select_obj (Images, Input1, 1)
7、intersection (DarkFilled, Light, Intersection)
8、complement (DarkFilled, Back)
9、expand_region (Intersection, Back, RegionExpanded, 10, 'image')
10、difference (DarkFilled, Good, Rest)
11、expand_gray (Rest, Ic, Good, Bad, 6, 'image', 5)
12、count_obj (BigBad, NumMissingSolder)
一、程序源码分析
1、更新、关闭、打开新窗口
// board.hdev: Detection of missing solder漏焊检测
get_system ('clip_region', Information)
set_system ('clip_region', 'true')
// Get_system返回set_system设置的所有参数的信息
dev_update_window ('off')
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowID)
2、读取图像并将图像转化为多通道图像
-
读取的是不同照明方向拍摄的图像
read_image (Images, ['ic0', 'ic1', 'ic2', 'ic3'])
// 将单通道图像转换为多通道图像
channels_to_image (Images, Ic)
3、从元组中选择对象输出显示
select_obj (Images, Input1, 1)
dev_display (Input1)
set_display_font (WindowID, 14, 'mono', 'false', 'false')
disp_continue_message (WindowID, 'black', 'true')
stop ()
select_obj (Images, Input2, 2)
dev_display (Input2)
disp_continue_message (WindowID, 'black', 'true')
stop ()
select_obj (Images, Input3, 3)
dev_display (Input3)
disp_continue_message (WindowID, 'black', 'true')
stop ()
select_obj (Images, Input4, 4)
dev_display (Input4)
disp_continue_message (WindowID, 'black', 'true')
stop ()
4、对多通道图像的像素值进行平均,会发现焊接区域边缘是银色,内部是黑色,有利于区分焊接区域与未焊接区域
mean_n (Ic, ImageMean)
dev_display (ImageMean)
5、找出暗的区域,也就是焊接区域
threshold (Images, Darks, 0, 40)
union1 (Darks, Dark)
fill_up (Dark, DarkFilled)
dev_set_color ('green')
dev_display (DarkFilled)
disp_continue_message (WindowID, 'black', 'true')
stop ()
6、找出亮的区域,包括电路板背景与焊接区域边缘
threshold (Images, Lights, 100, 255)
union1 (Lights, Light)