图像处理结果:
主要思想:
*Blob+差分+特征
Blob:使用灰度值的开运算图像A,使用灰度值的闭运算图像B
差分:A-75>B,选择其中暗的,A+75<B,选择其中亮的
特征:可以再使用面积这样的参数进行筛选
*对于打光要求很高,背景要求高,要光照稳定
*读取图像
read_image (Image, ‘pcb’)
*关闭窗口
dev_close_window ()
*获取读取图像的宽高
get_image_size (Image, Width, Height)
*打开窗口
dev_open_window (0, 0, Width, Height, ‘black’, WindowHandle)
*显示图像
dev_display (Image)
*灰度腐蚀,或者开运算,会让暗的像素点增多
*灰度膨胀,或者闭运算,会让亮的像素点增多
灰度图像的开运算,八角形,77的卷积,输入图像Image,输出图像ImageOpening。
*能看出本来断开的白色区域,被连起来了,白色缺口区域变成了黑色区域
*本来凸起的小黑色区域,变大了
gray_opening_shape (Image, ImageOpening, 7, 7, ‘octagon’)
灰度图像的闭运算,八角形,77的卷积,输入图像Image,输出图像ImageClosing。
*能看出本来断开的白色区域,断的更开了,白色小缺口变成了大缺口
*本来凸起的小黑色区域,变小了
gray_closing_shape (Image, ImageClosing, 7, 7, ‘octagon’)
*动态阈值分割,因为选择的参数是’not_equal’,所以相当于既选择了亮的,也选择了暗的
*后一张图片的某一点,该点像素的灰度值-75>第一张图的像素灰度值。说明提取图像中暗的部分
*后一张图片的某一点,该点像素的灰度值+75<第一张图的像素灰度值。说明提取图像中亮的部分
*对比的时候,是从上往下,从左往右,每一个像素值都进行比较
dyn_threshold (ImageOpening, ImageClosing, RegionDynThresh, 75, ‘not_equal’)
dev_display (Image)
dev_set_color (‘red’)
dev_set_draw (‘margin’)
dev_display (RegionDynThresh)
对应示例程序:
pcb_inspection.hdev