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