基於Python實現對PDF檔案的OCR識別,

來源:互聯網
上載者:User

基於Python實現對PDF檔案的OCR識別,

最近在做一個項目的時候,需要將PDF檔案作為輸入,從中輸出文本,然後將文本存入資料庫中。為此,我找尋了很久的解決方案,最終才確定使用tesseract。所以不要浪費時間了,我們開始吧。

1.安裝tesseract

在不同的系統中安裝tesseract非常容易。為了簡便,我們以Ubuntu為例。

Ubuntu中你僅僅需要運行以下命令:

這將會安裝支援3種不同語言的tesseract

2.安裝PyOCR

現在我們還需要安裝tesseract的Python介面。幸運的是,有許多出色的Python介面。

我們採用最新的一個:

3.安裝Wand和PIL

在我們開始之前,還需要另外安裝兩個依賴包。一個是Wand。它是Imagemagick的Python介面。

我們需要使用它來將PDF檔案轉換成映像:

我們也需要PIL因為PyOCR需要使用它。你可以查看官方文檔以確定如何將PIL安裝到你的作業系統中。

4.熱身

讓我們開始我們的指令碼吧。首先,我們需要匯入一些重要的庫:

注意:我將從PIL匯入的Image模組改名為PI了,因為如果不這樣做的話,它將和wand.image模組發生重名衝突。

5.開始

現在我們需要獲得OCR庫(在本例中,即tesseract)的控制代碼以及我們在PyOCR中將使用的語言:

我們使用tool.get_available_languages裡的第二種語言,因為之前我曾嘗試過,第二種語言就是英語。

接著,我們需要建立兩個列表,用於儲存我們的映像和最終的文本。

下一步,我們需要採用wand將一個PDF檔案轉成jpeg檔案。讓我們試一試吧!

注意:PDF_FILE_NAME替換成當前路徑下的一個可用的PDF檔案名稱。

wand已經將PDF中所有的獨立頁面都轉成了獨立的二進位映像對象。我們可以遍曆這個大對象,並把它們加入到req_image序列中去。

現在,我們僅僅需要在映像對象上運行OCR即可,非常簡單:

現在,所有識別出的文本已經加到了final_text序列中了。你可以任意地使用它。以上就是利用Python對PDF檔案做OCR識別的全部內容,希望這個教程能夠協助到你們!

英文原文:https://pythontips.com/2016/02/25/ocr-on-pdf-files-using-python/

譯者:LuCima

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.