我有这张照片:
我正在尝试使用niblack算法进行文档二值化 我已经实现了简单的Niblack算法
T = mean + K * standardDiviation
这就是结果:
问题在于图像的某些部分窗口中不包含任何对象,因此它将噪声检测为对象并对其进行详细说明。
我尝试应用模糊滤镜然后进行全局阈值处理 那是结果:
任何其他过滤器都无法解决 我想唯一的解决方案是阻止算法检测全局噪声,如果窗口我没有对象
我有兴趣使用niblack算法,而不是使用其他算法,所以有任何建议吗?
答案 0 :(得分:11)
我在本文中尝试了索沃拉算法Adaptive document image binarization J. Sauvola*, M. PietikaKinen第3.3节
它是niblack算法的修改版本,它使用了修改后的niblack方程
返回了一个很好的答案:
以及我尝试了在this paper中实现的Niblack的另一个修改 5.5算法第9a号:法国INSA里昂大学(C. Wolf,J-M Jolion)
也取得了不错的成绩:
答案 1 :(得分:3)
你看到了这里:https://stackoverflow.com/a/9891678/105037
local_mean = imfilter(X, filt, 'symmetric');
local_std = sqrt(imfilter(X .^ 2, filt, 'symmetric'));
X_bin = X >= (local_mean + k_threshold * local_std);
如果你坚持使用niblack,我在这里看不到很多选择。您可以更改过滤器的大小和类型以及阈值。
顺便说一下,您的原始图像似乎有颜色。此信息可以显着改善黑色文本检测。答案 2 :(得分:1)
在这种情况下,有许多方法可以提供帮助:
答案 3 :(得分:0)
我通过优化尝试了k = -0.99和windows = 990的niblack算法:
Shafait –“有效实施本地自适应阈值 使用积分图像的技术”,2008年
其中:T =平均值+ K *标准差;我有这个结果:
算法的实现采用here