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