【发布时间】:2023-03-14 15:22:01
【问题描述】:
自动找出将灰度图像转换为黑白的最佳阈值的最佳方法是什么?我可以手动计算出很好的阈值,但我想自动选择阈值。
编辑:我一直在阅读有关此问题的一些信息,并且通过查看图像的直方图可以提供帮助,例如如果图像具有双模直方图,那么在模式之间选择阈值似乎是合理的。然而,对于多模态或平面直方图,它看起来更复杂。所以我想我还有一些阅读要做。感谢所有回复的人!
【问题讨论】:
标签: image-processing
自动找出将灰度图像转换为黑白的最佳阈值的最佳方法是什么?我可以手动计算出很好的阈值,但我想自动选择阈值。
编辑:我一直在阅读有关此问题的一些信息,并且通过查看图像的直方图可以提供帮助,例如如果图像具有双模直方图,那么在模式之间选择阈值似乎是合理的。然而,对于多模态或平面直方图,它看起来更复杂。所以我想我还有一些阅读要做。感谢所有回复的人!
【问题讨论】:
标签: image-processing
0.5 通常会丢失大量信息,除非原始图像非常亮。事实上,任何绝对阈值都会弄乱一种或另一种图像。
更好的方法是制作光度直方图并选择模式附近的阈值。这在大多数图像上应该比任何绝对阈值都更有效。
【讨论】:
我会研究一种自适应阈值算法。 Otsus method 就是其中之一,实现起来并不难。
它的工作原理是假设您有前景像素和背景像素,并尝试找到它们的最佳分离。
【讨论】:
如果您执行以下操作,K-Means Clustering Method 将非常有用:
在 Matlab 中很容易做到。
如果需要,我可以分享代码。
【讨论】:
您对“良好”阈值的标准是什么?您可能希望从图像的平均灰度强度开始...
【讨论】:
我认为阈值将独立地取决于每个图像的平均暗度(或颜色分布)。如果您使用任意值,那么如果图像一开始就很褪色,您最终会丢失大量数据。
此外,您可以通过用黑色和白色稀疏地填充一个区域来模拟一些灰度。 50% 的灰色是一个其他的棋盘格,75% 是你在剩下的一半白色方块上着色,25% 是你颠倒黑白,等等。
如果不单独考虑每张图片,我认为这个问题没有固定的答案。
【讨论】:
基于阈值的半色调通常会导致大量信息丢失。根据目的,您可能需要考虑dithering。
我喜欢 Stucki 滤镜的外观,因为它清晰且保留了细节。 Here's a C# project 实现算法。有兴趣的可以下载源码。
【讨论】: