Halcon:PCB缺陷检测

图像处理结果:
在这里插入图片描述
在这里插入图片描述

主要思想:
*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

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值