|
最近在做一個項目的時候,需要將PDF文件作為輸入,從中輸出文本,然后將文本存入數(shù)據(jù)庫中。為此,我找尋了很久的解決方案,最終才確定使用tesseract。所以不要浪費時間了,我們開始吧。 1.安裝tesseract 在不同的系統(tǒng)中安裝tesseract非常容易。為了簡便,我們以Ubuntu為例。 在Ubuntu中你僅僅需要運行以下命令:
這將會安裝支持3種不同語言的tesseract。 2.安裝PyOCR 現(xiàn)在我們還需要安裝tesseract的Python接口。幸運的是,有許多出色的Python接口。 我們采用最新的一個:
3.安裝Wand和PIL 在我們開始之前,還需要另外安裝兩個依賴包。一個是Wand。它是Imagemagick的Python接口。 我們需要使用它來將PDF文件轉(zhuǎn)換成圖像:
我們也需要PIL因為PyOCR需要使用它。你可以查看官方文檔以確定如何將PIL安裝到你的操作系統(tǒng)中。 4.熱身 讓我們開始我們的腳本吧。首先,我們需要導(dǎo)入一些重要的庫:
注意:我將從PIL導(dǎo)入的Image模塊改名為PI了,因為如果不這樣做的話,它將和 5.開始 現(xiàn)在我們需要獲得OCR庫(在本例中,即tesseract)的句柄以及我們在PyOCR中將使用的語言:
我們使用 接著,我們需要建立兩個列表,用于存儲我們的圖像和最終的文本。
下一步,我們需要采用wand將一個PDF文件轉(zhuǎn)成jpeg文件。讓我們試一試吧!
注意:將PDF_FILE_NAME替換成當(dāng)前路徑下的一個可用的PDF文件名。 wand已經(jīng)將PDF中所有的獨立頁面都轉(zhuǎn)成了獨立的二進制圖像對象。我們可以遍歷這個大對象,并把它們加入到req_image序列中去。
現(xiàn)在,我們僅僅需要在圖像對象上運行OCR即可,非常簡單:
現(xiàn)在,所有識別出的文本已經(jīng)加到了final_text序列中了。你可以任意地使用它。以上就是利用Python對PDF文件做OCR識別的全部內(nèi)容,希望這個教程能夠幫助到你們! 英文原文:https:///2016/02/25/ocr-on-pdf-files-using-python/ 譯者:LuCima |
|
|