我需要过滤器来提高照片上的文本可见性,因为它有一些噪音。为此,您知道哪些过滤器(算法)?
现在,我使用单色滤镜,但它并没有提高图像质量。我需要过滤可以确定小区域的中等背景并根据中等背景使图像单色。
例如,几乎所有图片背景都是白色和灰色字符,但某些区域具有较深的颜色(灰色)和黑色字符。我需要算法才能理解图像的某些区域更暗,并使黑色接受程度更低。
我需要过滤器来提高照片上的文本可见性,因为它有一些噪音。为此,您知道哪些过滤器(算法)?
现在,我使用单色滤镜,但它并没有提高图像质量。我需要过滤可以确定小区域的中等背景并根据中等背景使图像单色。
例如,几乎所有图片背景都是白色和灰色字符,但某些区域具有较深的颜色(灰色)和黑色字符。我需要算法才能理解图像的某些区域更暗,并使黑色接受程度更低。
不幸的是,我无法使用代码中的图像处理包提供准确和快速的答案,但我可以根据在 Photoshop 中完成的一些非常快速的测试提供一些提示(对不起,视觉思考者,打字速度慢)。在最坏的情况下,您可以从 Matlab 运行 Photoshop 过滤器,但使用的过滤器应该可用或不难实现,因为我已经约束自己:
简单来说,我建议首先阅读从暗到亮的渐变:在更均匀的图像上使用对比度/阈值会更容易。在 Photoshop 中,我应用了曲线(其他人想知道如何在代码中实现)
不完美,但它说明了消除一些强烈渐变的想法。
在生成的图像上,我应用了级别:
之后,一个高通:
您可以使用高通结果并将其与上一步混合(叠加),这将强调细节:
然后应用邮票过滤器(小高斯模糊+阈值的混合):
甚至更简单,在高通结果上,再次应用曲线或阈值:
这个想法是阈值应该处理最后阶段的分割,并且您需要通过取消与文本本身无关的元素(如闪光灯等渐变)来使其工作尽可能简单。如果您稍后需要清理小点,形态过滤器(如腐蚀,然后扩张)应该会有所帮助。您还可以找到一些关于检测梯度的信息。
您可以提供一个示例图像。
如果要使图像变为黑白,则可以使用阈值操作,只要您的文本比最暗的背景值更暗。
比较每个像素与全局阈值。如果较高,则将其设置为新值 a,如果较低,则将其设置为新值 b。对于equals,您必须选择一个选项。
如果不是,您可以使用所谓的本地阈值。在这里,您可以从其周围计算每个像素的阈值。有许多算法用于计算该局部阈值。
举几个局部阈值算法: Bernsen Sauvola Mean Median MidGrey Niblack
它们都根据像素周围的一些有限区域计算阈值。