halcon机器视觉实例1--表面划痕检测

前言

这个是开始halcon机器视觉的第一篇。
为什么要用halcon呢,因为有很多现成的算子,方便快速应用。
后续的计划是一边熟悉halcon,一边刷刚萨雷斯的《数字图像处理》。

正文

以官方例程的surface_scratches(表面划痕)为例

官方例程用到的划痕图片素材

1,根本不可能仅以灰度值作为判断划痕的依据。
因为,划痕像素点的灰度值与非划痕处像素点的灰度值,不可能正好是一个二值分割的关系。简单点说,就是–不可能划痕区域的每个点都比所有的非划痕区域亮或者暗。
且灰度值易受各种因素影响而变化。因此,鉴别划痕的思路应该是检测相对变化。
2,官方例程的思路。
先均值滤波后,再将原图相对均值后的图像做动态阈值分割,取出dark部分。均值滤波后灰度值就被平均化了,低的被拉高,高的被拉低。此时,再做动态阈值分支。那相比较来说,灰度值更dark的部分,就是包含了划痕的部分了。
3,并非分离出的所有的点都是划痕。
因为图片存在很多污点,会被一并分割出来。这时候接一手形态学中的面积查找就搞定了。因为污点的特征是面积小而不连续。
4,联通相邻区域。
一条划痕可能检测出来中间会有分段,此时可以用膨胀可将其联通起来。
5,官方例程遗留问题。
官方例程的检测结果
官方例程很明显没有检测出全部的划痕,有几条划痕仅仅被标注出了一小段(注意绿圈部分)。通过分析检测过程,发现那几条划痕被鉴别为一排断开的点。究其原因肯定是因为划痕的灰度值有较大变化,导致检测的结果是一排断开的点,从而导致在形态检测中被排除了。

思考

这种方式适合用来检测较明显的划痕,对于对比不强烈的划痕没有办法。因为此种方法无法分辨–一排断开的点和噪声点有啥区别。就是说–此种方法无法鉴别点的排列特性,也就无法提取划痕的形状特性。此种方法是通过划痕的色差和面积特征来检验的。
用高斯滤波也是同样效果。因为高斯滤波的作用也是平滑图像。而要检测那些不明显的划痕,或许需要一种可以识别划痕的形状特征的方法。

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值