2015-02-23 54 views
3

我正在寻找一种方法在图像中查找已知文本。在图像中查找已知文本(向导OCR)

具体来说,我试图创建一个工具将一组扫描页面转换为支持搜索和复制粘贴的PDF文件。我明白这通常是如何实现的:OCR页面,保留文本的位置,然后将文本作为不可见图层添加到PDF中。 Acrobat内置此功能,并且tesseract可以输出hOCR文件(包含识别的文本及其位置),hocr2pdf可以使用这些文件生成文本图层。

不幸的是,我的源图像质量相当差(最多150 DPI,有大量的JPEG文物,以及一些文本背后的非纯色背景),导致OCR结果相当差。但是,我确实有每个页面上显示的文本副本(无图片和布局)。

将已知文本与其在扫描页面上的位置进行匹配似乎会更容易做到准确,但我未能发现任何内置此功能的软件。我如何利用现有软件来做到这一点?

编辑:文本的大小和字体各不相同,但它们的段落是一致的。

+1

你能发布一个或两个样本吗?你知道字体样式和大小的细节吗?这些在整个文件中是不变的? – 2015-02-23 23:02:47

+0

您是否要求提供可为您做到这一点的工具/软件? – kkuilla 2015-02-24 09:49:40

+0

@MarkSetchell我无法发布确切的文档,但我会看看是否可以生成可比较的质量样本。 – rkjnsn 2015-02-25 04:13:34

回答

0

我想到的思想是互相关联的。因此,我会将您知道发生在页面上的单词列表并将它们一次呈现在画布上,以创建该单词的图片。您需要使用与文档中文字类似的字体和大小 - 这正是我在我的评论中所提到的。然后,我将运行扫描图像的单词图片的归一化互相关以查看它出现的位置。我会用ImageMagick完成所有这些工作,它可用于Windows和OSX(在OS X上使用homebrew),并包含在大多数Linux发行版中。

所以,让我们把你问题的第二项的screengrab和查找单词pretty - 在这里你提相当差OCR

首先,您需要将单词pretty渲染到白色背景上。该命令将是这样的:

convert -background white -fill black -font Times -pointsize 14 label:pretty word.png 

结果:

enter image description here

然后从here像这样进行使用弗雷德Weinhaus的剧本归一化的互相关:

normcrosscorr -p word.png scan.png correlation-result.png 
Match Coords: (504,30) And Score In Range 0 to 1: (0.999803) 

,你可以看到匹配的坐标是504,30。

结果: enter image description here

另一个想法

另一个想法可能是把谷歌的正方体,OCR和更换标准字典,包含你正在处理的页面上的文字的文本文件...