我正在使用 OpenCV 库中的 cvThresholding() 例程,通过 Otsu 的阈值方法执行二值化。有时该方法会失败,这是可以理解的,因为 Otsu 计算整个图像的单个阈值。为了改善结果,我决定将图像分解为网格,然后对网格的每个部分进行大津二值化。现在的结果似乎令人鼓舞,但是基于网格的分区使得输出的二值图像本质上是不连续的,尤其是在网格的边缘。有办法解决这个问题吗?
请注意,这种方法最适合我。我知道 opencv 中提供了自适应阈值选项,但这似乎对我不起作用,因为与 Otsu 的二值化方法相比,它太敏感了。
正在等待回复。提前致谢。
最佳答案
最简单的可能是在网格中心之间插入阈值。尽管阈值图像是不连续的(梯度,而不是幅度),但它不太可能出现在最终结果中。
关于c - 实现本地化 Otsu 二值化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5644942/