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的為穩定版本。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPn50MZpmTwklaOBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1MDNwEjMwkTMwETNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
下載下傳完成後,從下載下傳目錄中輕按兩下應用程式安裝就可以了。安裝的時候一直點選next就好。(建議不要在Additional language data前打上勾,它是用來安裝語言包的,這樣OCR就可以識别多國語言。但是因為我們網絡的原因,我們很難成功下載下傳其他的語言包,我們可以後續在GitHub中下載下傳語言包。GitHub語言包下載下傳位址 ,其實GitHub上的下載下傳也不是很快而且會失敗,但網上有很多教怎麼從GitHub上下載下傳的,實在無法下載下傳,可以問我要。但注意語言包好像要和tesseract 比對,是以識别英文很簡單,想識别中文就有些麻煩。)
-
安裝pytesseract
安裝 pytesseract就簡單了,直接pip install pytesseract就可以了。
-
配置環境變量
tesseract和pytesseract都安裝好後,在使用前還有最後一步,就是配置環境變量,這是為了在全局使用友善。配置環境變量的方法也很簡單。先找到屬性,然後點選進階系統設定,再點選環境變量,找到path,然後輕按兩下,再最後添加tesseract的安裝路徑。比如我把tesseract安裝到了D:\360極速浏覽器下載下傳,就在path中添加行D:\360極速浏覽器下載下傳就可以了。
基于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)
圖檔:
識别結果:
最後想要識别中文時,隻需要一點小小的改動,就是在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)
圖檔:
識别結果: