Halcon 缺陷检测:掩膜的妙用

目录

🚀🚀1.选择合适的掩膜

1.1 掩膜的作用

1.2 不同的掩膜,不同的作用

前言:各位朋友们好,我是大脸猫。在缺陷检测方面,要实现准确的缺陷检测并非易事,因为原始图像往往包含大量的噪声和干扰信息。因此,图像预处理成为了一个至关重要的步骤,它直接影响着缺陷是否能被成功定位,其中常用的一种就是使用掩膜去提取缺陷。


🚀🚀1.选择合适的掩膜

1.1 掩膜的作用

在复杂对比度急剧变化背景下,选择合适的掩膜尤其关键。例如,在下图所示的情况下,我们需要从图像中提取出黑色的斑点和线条,其中黑斑的像素值为13。

☘️☘️算法如下:

read_image (Image, '01.png')
*三通道转为单通道
rgb1_to_gray (Image, GrayImage)
*生成掩膜
gen_disc_se (SE, 'byte', 15, 15, 0)  
gray_dilation (GrayImage, SE, GrayImage_dil1)
gray_erosion (GrayImage_dil1, SE, GrayImage_ero1)
sub_image (GrayImage_ero1, GrayImage, GrayImage_sub1, 7, 0)  

⭐⭐分析:

① gray_dilation (GrayImage, SE, GrayImage_dil1),对图像进行灰度值像素膨胀即灰度值较大的区域膨胀,面积变大。(如下图GrayImage_dil1)

② gray_erosion (GrayImage_dil1, SE, GrayImage_ero1),对图像进行灰度值像素收缩即灰度值较大的区域收缩,面积变小。(如下图GrayImage_ero1)

③ 在灰度值像素膨胀的过程中,原图中的“黑斑”和“黑线”被它们周围的高亮灰度值像素膨胀覆盖掉了。

④ 在灰度值像素收缩的过程中,图中的白格子面积缩小,几乎恢复原状,不过在上一步中被膨胀覆盖掉的小黑点、细黑线不可能再复原了。

⑤ sub_image (GrayImage_ero1, GrayImage, GrayImage_sub1, 7, 0),用无黑点、无黑线的图GrayImage_ero1减去原始图,就有效提取出了黑点和黑线。(如上图所示)

                

1.2 不同的掩膜,不同的作用

在了解到掩膜的作用之后,如何选择掩膜的尺寸尤其关键。合适的掩膜尺寸能够帮助我们有效地排除掉其他干扰因素。如果我们的目标是从复杂的背景中仅提取出黑色线条,那么该怎么选择掩膜呢?

☘️☘️算法如下:

*生成掩膜
gen_disc_se (SE, 'byte', 5, 5, 0)  
gray_dilation (GrayImage, SE, GrayImage_dil1)
gray_erosion (GrayImage_dil1, SE, GrayImage_ero1)
sub_image (GrayImage_ero1, GrayImage, GrayImage_sub1, 7, 0)  

⭐⭐分析: 

① 在灰度值像素膨胀的过程中,原图中只有满足尺寸的“黑线”被它周围的高亮灰度值像素膨胀覆盖掉了。(如下图GrayImage_dil1)

② 在灰度值像素收缩的过程中,图中的白格子面积缩小,几乎恢复原状,不过在上一步中被膨胀覆盖掉的黑线不可能再复原了,只留下“黑斑”。(如下图GrayImage_ero1)

③ sub_image (GrayImage_ero1, GrayImage, GrayImage_sub1, 7, 0),用无黑点、无黑线的图GrayImage_ero1减去原始图,就有效提取出了黑点和黑线。(如上图所示)

               

🌟🌟举一反三:

如果把目标更改为提取其他复杂背景的轮廓呢?我们可以把上面的GrayImage_dil1和GrayImage_ero1相减:

sub_image (GrayImage_dil1, GrayImage_ero1, GrayImage_sub2, 7, 0)

从图上可以看出,这起到了提取边缘的效果。由此衍生出一个方法,三个概念:

形态学梯度(膨胀图减去腐蚀图 dilation - erosion,得到物体轮廓)

① 基本梯度:基本梯度是用膨胀后的图像减去腐蚀后的图像得到差值图像,成为梯度图像。

     也是 opencv 中支持的计算形态学梯度的方法,而此方法得到的梯度又被成为基本梯度。

② 内部梯度:用原图像减去腐蚀后的图像得到的差值图像,称为图像的内部梯度。

③ 外部梯度:原图像膨胀后减去原图像得到的差值图像,称为图像的外部梯度。

请注意,这些方法耗时较长,需在合适的场景下使用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值