我有这张照片:

我正在尝试使用 niblack 算法进行文档二值化我已经实现了简单的 Niblack 算法
T = mean + K* standardDiviation
这就是结果:

问题是图像的某些部分中窗口不包含任何对象,因此它将噪声检测为对象并对其进行详细说明。
我尝试应用模糊过滤器,然后应用全局阈值,结果是:

这不会被任何其他过滤器解决,我想唯一的解决方案是如果窗口没有对象,则阻止算法检测全局噪声
我有兴趣使用 niblack 算法而不是使用其他算法来做到这一点,所以有什么建议吗?
我有这张照片:

我正在尝试使用 niblack 算法进行文档二值化我已经实现了简单的 Niblack 算法
T = mean + K* standardDiviation
这就是结果:

问题是图像的某些部分中窗口不包含任何对象,因此它将噪声检测为对象并对其进行详细说明。
我尝试应用模糊过滤器,然后应用全局阈值,结果是:

这不会被任何其他过滤器解决,我想唯一的解决方案是如果窗口没有对象,则阻止算法检测全局噪声
我有兴趣使用 niblack 算法而不是使用其他算法来做到这一点,所以有什么建议吗?
我在这篇论文中尝试了 sauvola 算法Adaptive document image binarization J. Sauvola*, M. PietikaKinen 第 3.3 节
它是 niblack 算法的修改版本,它使用修改后的 niblack 方程

它返回了一个很好的答案:

以及我尝试了 Niblack 的另一种修改,该修改在本文 的 5.5 算法 No. 9a 中实现:法国 INSA 里昂大学(C. Wolf,JM Jolion)
这也返回了一个很好的结果:

你看过这里吗: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,我在这里看不到很多选择。您可以更改过滤器的大小和类型以及阈值。
顺便说一句,您的原始图像似乎有颜色。此信息可以显着改善黑色文本检测。
在这种情况下,有多种方法可以提供帮助:
我使用优化尝试了 k=-0.99 和 windows=990 的 niblack 算法:
Shafait –“使用积分图像有效实现局部自适应阈值技术”,2008
其中:T = mean + K* standardDiviation;我有这个结果:
算法的实现取在这里