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