Halcon那些事:什么是动态阈值,如何用dyn_threshold分割图片
Halcon那些事:什么是动态阈值,如何用dyn_threshold分割图片
-
-
- 一、什么是动态阈值?为什么需要它?
-
- 1. 传统全局阈值的局限性
- 2. 动态阈值的核心思想
- 二、Halcon 中的核心算子:`dyn_threshold`
-
- 1. 算子原型
- 2. 参数详解
- 三、工作原理(数学模型)
- 四、详细使用步骤与实例
- 五、关键参数选择与技巧
- 六、与其他算子的对比
- 七、dyn_threshold示例
-
- 代码原理与过程详解
-
- 1. 问题定义
- 2. 解决方案:动态阈值 (dyn_threshold)
- 3. 后处理 (Post-processing)
- 总结
- 八、总结与流程
-

动态阈值是机器视觉中处理光照不均、背景复杂等情况的强大工具。
一、什么是动态阈值?为什么需要它?
1. 传统全局阈值的局限性
最基础的阈值方法是全局阈值,例如 threshold(Image, Region, 128, 255)
。它会将图像中所有灰度值在 128 到 255 之间的像素都提取出来。
- 问题:当图像背景光照不均匀(例如,一边亮一边暗)、或者物体表面本身就有明暗变化时,一个固定的阈值无法适用于整个图像。在亮处可能刚好,在暗处则会丢失目标;反之,在暗处合适,在亮处又会引入过多背景噪声。
2. 动态阈值的核心思想
动态阈值(Local Thresholding 或 Adaptive Thresholding)不是用一个固定的灰度值,而是用一个变化的阈值来对图像进行分割。
这个“变化的阈值”来自于另一张图像——参考图像(Reference Image)。参考图像是通过对原始图像进行某种平滑或滤波处理得到的,它模拟了图像的背景或整体光照变化。
简单比喻: