2

I have this image here: http://imgur.com/QFSimZX

That when looking at it, a human can see that it says PINE (N) on the top line and PI on the second line. The problem I have is that when using tesseract-ocr to read what the text says it has pretty bad outputs. I have a lot of images like this and need to automate this process, so doing it manually is not idea. I have used imagemagick to get it in the current state, but would like to know if there is any way to make this image more readable by possibly connecting the close areas of black. I know almost nothing about image manipulation so I don't know where to begin searching. If anyone knows a method for making this more readable I would greatly appreciate it.

4

1 回答 1

1

这是一个非常棘手的问题,最有效的解决方案将敏感地取决于图像的特征——类型是什么比例?图像退化到什么程度?您想要保留的细节和想要修复的降级之间的界限只有人工操作员才能决定,因此对于这个问题没有自动化的万能解决方案,您应该期望做一些实验。

基本技术是您希望将图像中每个像素的值调整为与它周围的像素相似。用这些术语,您可能会意识到这只是一个模糊操作。但是,在您模糊图像之后,您会留下边缘模糊的字母,因此要再次获得清晰的字母,这是一个阈值操作 - 您设置了一个阈值级别的灰色,所有比灰色阴影更亮的东西都变成白色,所有比灰色阴影更暗的东西阈值变为黑色。模糊加阈值组合为您提供了广泛的效果,您可以使用这些效果使文本更清晰(或更不清晰)。对于给出的示例图像,我在模糊半径为 5 和阈值为 70% 的情况下获得了相当不错的结果。

convert QFSimZX.jpg -blur 5 -threshold 70% output.png

模糊和阈值

如果需要,您可以通过使用操作员实现自定义模糊功能来获得比这更复杂的功能-fx。Fx 功能强大但有些复杂,您可以在此处阅读:http ://www.imagemagick.org/script/fx.php 。我尝试了一个快速的 fx 表达式,它首先根据其上下邻居填充像素,然后根据其左右邻居填充像素。这种技术确实允许您微调在计算模糊时考虑哪些像素:

convert QFSimZX.jpg -monochrome \
    -fx 'p[0,-1]+p[0,1] >= 2 ? 1 : 0' \
    -fx 'p[-1,0]+p[1,0] >= 2 ? 1 : 0' \
    output.png

外汇法

于 2014-03-14T22:49:10.043 回答