基于Python实现对PDF⽂件的OCR识别
⼤家可能听说过使⽤Python进⾏OCR识别操作。在Python中,最出名的库便是Google所资助的tesseract。利⽤tesseract可以很轻松地对图像进⾏识别。现在问题来了,如果想对⼀个PDF⽂档进⾏OCR识别,该怎么做呢?下⾯⼀起来看看。
最近在做⼀个项⽬的时候,需要将PDF⽂件作为输⼊,从中输出⽂本,然后将⽂本存⼊数据库中。为此,我寻了很久的解决⽅案,最终才确定使⽤tesseract。所以不要浪费时间了,我们开始吧。
1.安装tesseract
在不同的系统中安装tesseract⾮常容易。为了简便,我们以Ubuntu为例。
在Ubuntu中你仅仅需要运⾏以下命令:
这将会安装⽀持3种不同语⾔的tesseract。
2.安装PyOCR
现在我们还需要安装tesseract的Python接⼝。幸运的是,有许多出⾊的Python接⼝。
我们采⽤最新的⼀个:
3.安装Wand和PIL
在我们开始之前,还需要另外安装两个依赖包。⼀个是Wand。它是Imagemagick的Python接⼝。
ubuntu怎么安装python我们需要使⽤它来将PDF⽂件转换成图像:
我们也需要PIL因为PyOCR需要使⽤它。你可以查看官⽅⽂档以确定如何将PIL安装到你的操作系统中。
4.热⾝
让我们开始我们的脚本吧。⾸先,我们需要导⼊⼀些重要的库:
注意:我将从PIL导⼊的Image模块改名为PI了,因为如果不这样做的话,它将和wand.image模块发⽣重名冲突。
5.开始
现在我们需要获得OCR库(在本例中,即tesseract)的句柄以及我们在PyOCR中将使⽤的语⾔:
我们使⽤_available_languages⾥的第⼆种语⾔,因为之前我曾尝试过,第⼆种语⾔就是英语。
接着,我们需要建⽴两个列表,⽤于存储我们的图像和最终的⽂本。
下⼀步,我们需要采⽤wand将⼀个PDF⽂件转成jpeg⽂件。让我们试⼀试吧!
注意:将PDF_FILE_NAME替换成当前路径下的⼀个可⽤的PDF⽂件名。
wand已经将PDF中所有的独⽴页⾯都转成了独⽴的⼆进制图像对象。我们可以遍历这个⼤对象,并把它们加⼊到req_image序列中去。现在,我们仅仅需要在图像对象上运⾏OCR即可,⾮常简单:
现在,所有识别出的⽂本已经加到了final_text序列中了。你可以任意地使⽤它。以上就是利⽤Python对PDF⽂件做OCR识别的全部内容,希望这个教程能够帮助到你们!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论