Halcon(一)- dyn_threshold 不均匀背景中的瑕疵检测

Halcon 提供了几种阈值分割的算子,比如:

threshold(Image, filteredRegion,5, 255)

图像中,所有满足5<=grayValue<=255的像素,都会被输出成region。

这样对于背景光照比较均匀的项目来说,效果不错,假设背景亮度本身存在一定的差异,

那么就需要用到dyn_threshold算子来进行处理。

dyn_threshold(OrigImage,ThresholdImage : RegionDynThresh :Offset,LightDark : )

a. OrigImage 原图像

b. ThresholdImage 参考阈值图像

c. RegionDynThresh  输出的Region,也就是我们想要的结果

d. Offset 阈值大小

e​ . LightDark 根据特征进行选择,如果目标特征的灰度值较小,选择"dark", 反之选择"light" ​

对比threashold, 最根本的区别就是加入了参考阈值图像, 也就是说,每个像素的阈值分割,有参考阈值和Offse这个固定阈值来决定:
 

The condition for LightDark = 'light' is:g_o>=g_t+offset ,light就提取相对参考图更亮的区域。

For LightDark='dark' ,the conditon is: g_o<=g_t-offset ,dark就提取相对参考图更暗的区域

For LightDark='equal',g_t-offset<=g_o<=g_t+offset,选取和参考图差不多的区域。

使用这个算子的大概流程如下:

1. 获取ROI。如果图片中不包含无关信息,请跳过此步骤。

通过模板匹配等方法,定位到需要处理的Region,通过ReduceDomain先拿到ROI图像。

2. MeanImage 获取参考阈值图像

比如 mean_image(ProcImage, ProcMeanImage, 15, 15)

会用15*15的卷积核,对原图像进行加权平均,卷积核的尺寸越大,图像越模糊。

参考Halcon文档的解释:

Withdyn_threshold, contours of an object can be extracted, where the objects' size (diameter) is determined by the mask size of the lowpass filter and the amplitude of the objects' edges.

我的理解: (一). 卷积核尺寸越大,对应的低通滤波器的截止频率越低,图像的低频成分越多。

(二). 由检测对象的的对比度决定卷积窗的大小,如果对比度较小,意味着检测对象本身的频率较低,需要用更低频的滤波器来做阈值分割(dyn_threashold), 意味着选择的卷积窗大小相对较大; 如果对比度较大,以为者检测对象本身的属于较高频的信号, 此时,卷积窗尺寸可以相对较小

具体选择多大的卷积窗,参考文档给出的解释:

The larger the mask size is chosen, the larger the found regions become. As a rule of thumb, the mask size shouldbe about twice the diameter of the objects to be extracted.

根据经验,卷积核尺寸通常为两倍检测对象直径

3. DynThreshold 动态阈值分割

前期的准备好以后,就用此方法进行动态阈值分割

比如: dyn_threshold (ProcImage, ProcMeanImage, ProcDarkPixels, 22, 'dark')

4. 后期优化

当然,如果在同一幅图中,需要检测的对象的尺寸相差较大,可将检测对象的尺寸划分成几档,对于这几档,选择不同的卷积核尺寸,将2~3步进行重复。比如检测对象的像素尺寸为100, 50, 20,就选择201*201,101*101,41*41的卷积窗,将三次过滤的输出区域,取并集,这样就尽可能的筛选出我们想要的结果。

如有遗漏或不正确的知识点,还请提出宝贵建议,感谢!

参考博客:

halcon学习(一)dyn_threshold_莫干的博客-CSDN博客_dyn threshold

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值