建议过滤器以提高照片上的文本可见性

时间:2016-02-08 18:20:40

标签: image-processing text-recognition

我需要过滤器来提高照片上的文字可见性,因为它有一些噪音。您为此目的了解哪些过滤器(算法)?

现在,我使用单色滤镜,但它并没有提高图像质量。我需要过滤可以确定小区域的中等背景,并根据中等背景使图像单色。

例如,几乎所有图片背景都是白色和灰色字符,但有些区域有较深的颜色(灰色)和黑色字符。我需要算法可以理解图像的某些区域更暗,并使黑色接受程度更低。


例如,源图像: Photo
和加工照片(中位数,单色滤镜) Processed photo

2 个答案:

答案 0 :(得分:3)

不幸的是,我无法使用代码中的图像处理软件包提供准确而快速的答案,但我可以根据Photoshop中的一些非常快速的测试提供一些提示(抱歉,视觉思考者,慢打字员)。最糟糕的情况是,您可以运行Photoshop filters from Matlab,但是使用的过滤器应该可用或者不易实现,因为我限制自己:

  • 曲线
  • 水平
  • 高通

简单来说,我建议首先阅读渐变暗到亮的渐变:在更均匀的图像上使用对比度/阈值更容易。 在Photoshop中我应用了曲线(其他人想知道implementing in code

curves curves settings

不完美,但它说明了取消一点强烈渐变的想法。

在生成的图像上我应用了级别:

levels levels settings

之后,高通:

high pass

你可以使用高通结果并将它(叠加)与前一步骤混合,这将强调细节:

high pass + overlay

然后应用印章过滤器(小高斯模糊+阈值的混合):

stamp filter

甚至更简单,在高通结果上,再次应用曲线或阈值:

curves curves settings

想法是阈值应该处理最后阶段的分割,你需要通过取消与文本本身无关的元素(如像渐变的闪光灯)来使其工作尽可能简单。 如果你需要稍后清理小点,形态滤镜(如腐蚀,然后扩张)应该有所帮助。您也可以在detecting gradients上找到一些信息。

答案 1 :(得分:1)

您可以提供示例图片。

如果您想要将图像设为黑白图像,只要文本比最暗的背景值更暗,就可以使用阈值操作。

比较每个像素与全局阈值。如果更高,则将其设置为新值a,如果更低,则将其设置为新值b。对于equals,您必须选择一个选项。

如果不是,您可以使用所谓的本地阈值。在这里,您可以计算每个像素的周围环境的阈值。有许多算法用于计算本地阈值。

列举一些本地阈值算法: 伯恩森 Sauvola 意思 中位数 MidGrey Niblack

它们都根据像素周围的某些有限区域计算阈值。