关于抗锯齿文本的OCR

时间:2014-02-17 11:28:40

标签: image-processing ocr

我必须从PDF文档到OCR表。我编写了简单的Python + opencv脚本来获取单个单元格。之后出现了新的问题。文本是抗锯齿的,而不是高质量的。 tesseract的识别率非常低。我试图用自适应阈值处理预处理图像,但结果并没有好多少。 我已经尝试过ABBYY FineReader的试用版,确实它提供了很好的输出,但我不想使用非自由软件。 我想知道是否有一些预处理可以解决问题,或者是否有必要编写和学习其他OCR系统。

http://oi60.tinypic.com/ztzsrq.jpg http://i57.tinypic.com/xmpcm9.png

1 个答案:

答案 0 :(得分:2)

如果仔细查看抗锯齿文本示例,您会发现边缘包含大量红色和蓝色:

enlarged view of antialiased text

这表明抗锯齿是在您的计算机内部进行的,该计算机使用subpixel rendering来优化LCD显示器的效果。

如果是这样,以更高的分辨率提取文本应该很容易。例如,您可以使用ImageMagick通过使用如下命令行以300 dpi从PDF文件中提取图像:

convert -density 300 source.pdf output.png

您甚至可以尝试在自己喜欢的查看器中加载PDF并将文本直接复制到剪贴板。


<强>附录:

我尝试将示例文本转换回原始像素并应用评论中提到的缩放技术。结果如下:

原始图片:
original image

缩放300%并应用简单阈值后:
scaled and thresholded image

智能缩放和阈值处理后:
smart scaled and thresholded image

正如您所看到的,有些字母仍然有点格格不入,但我认为使用Tesseract读取此字母的可能性更大。