天天看點

基于python實作ocrPython實作ocr

Python實作ocr

  • Python實作ocr
    • 安裝tesseract和pytesseract
    • 實别圖檔中的文字

Python實作ocr

總是會需要将圖檔中的文字識别出來,這就需要ocr技術。已經有很多很好用的線上文字識别網站了。比如:http://www.ocrmaker.com/

但是其實我們自己就可以實作文字識别了,通過python很容易實作這一點。基于pyhton實作ocr主要是使用tesseract。

安裝tesseract和pytesseract

tesseract 是一個OCR 庫,是目前公認最優秀、最精确的開源OCR 系統。tesseract下載下傳位址

pytesseract是對應的pyhton中的庫。

  • 安裝tesseract

    進入頁面後,可以随意下載下傳一個版本。其中檔案名中帶有dev的為開發版本,不帶dev的為穩定版本。

基于python實作ocrPython實作ocr

下載下傳完成後,從下載下傳目錄中輕按兩下應用程式安裝就可以了。安裝的時候一直點選next就好。(建議不要在Additional language data前打上勾,它是用來安裝語言包的,這樣OCR就可以識别多國語言。但是因為我們網絡的原因,我們很難成功下載下傳其他的語言包,我們可以後續在GitHub中下載下傳語言包。GitHub語言包下載下傳位址 ,其實GitHub上的下載下傳也不是很快而且會失敗,但網上有很多教怎麼從GitHub上下載下傳的,實在無法下載下傳,可以問我要。但注意語言包好像要和tesseract 比對,是以識别英文很簡單,想識别中文就有些麻煩。)

基于python實作ocrPython實作ocr
  • 安裝pytesseract

    安裝 pytesseract就簡單了,直接pip install pytesseract就可以了。

  • 配置環境變量

    tesseract和pytesseract都安裝好後,在使用前還有最後一步,就是配置環境變量,這是為了在全局使用友善。配置環境變量的方法也很簡單。先找到屬性,然後點選進階系統設定,再點選環境變量,找到path,然後輕按兩下,再最後添加tesseract的安裝路徑。比如我把tesseract安裝到了D:\360極速浏覽器下載下傳,就在path中添加行D:\360極速浏覽器下載下傳就可以了。

    基于python實作ocrPython實作ocr
    基于python實作ocrPython實作ocr
基于python實作ocrPython實作ocr
  • 檢驗是否成功

    都完成後,在cmd中輸入tesseract -v,如果出現如下圖所示的情況,就說明都已經成功了,可以在pyhton中使用了。

    基于python實作ocrPython實作ocr

實别圖檔中的文字

都安裝好後,識别圖檔中的文字就很簡單了,隻需要幾行代碼既可以解決。

import pytesseract
from PIL import Image

pytesseract.pytesseract.tesseract_cmd = r'D:\360極速浏覽器下載下傳\tesseract.exe'
img = Image.open(r'D:\p\python.png')
text = pytesseract.image_to_string(img)

print(text)
           

圖檔:

基于python實作ocrPython實作ocr

識别結果:

基于python實作ocrPython實作ocr

最後想要識别中文時,隻需要一點小小的改動,就是在pytesseract.image_to_string(img)後面添加一個lang=‘chi_sim’(識别中文時,對黑白圖檔的效果更好,如果圖檔是彩色的可以先進行一些預處理。另外中文的識别效果不是很理想,不推薦使用。)

import pytesseract
from PIL import Image

pytesseract.pytesseract.tesseract_cmd = r'D:\360極速浏覽器下載下傳/tesseract.exe'
img = Image.open(r'D:\p\poem.png')
text = pytesseract.image_to_string(img,lang='chi_sim')

print(text)
           

圖檔:

基于python實作ocrPython實作ocr

識别結果:

基于python實作ocrPython實作ocr