今天嘗試了一下cnocr和tesseract,給大家分別講講兩個(gè)模塊的使用方法和效果。
1.準(zhǔn)備
開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上噢,如果沒有,請(qǐng)?jiān)L問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda
Windows環(huán)境下打開Cmd(開始—運(yùn)行—CMD),蘋果系統(tǒng)環(huán)境下請(qǐng)打開Terminal(command+空格輸入Terminal),準(zhǔn)備開始輸入命令安裝依賴。
當(dāng)然,我更推薦大家用VSCode編輯器,把本文代碼Copy下來,在編輯器下方的終端運(yùn)行命令安裝依賴模塊,多舒服的一件事?。?a href="http://wenjunhu.com/outside?redirect=http://mp.weixin.qq.com/s?__biz=MzI3MzM0ODU4Mg==&mid=2247485849&idx=1&sn=ec098cf67a55bd1d61d4513397434c94&chksm=eb25eb10dc52620682db716d206c18b00bd53c01743729a9dea381e1791566a04a06f1fabca5&scene=21#wechat_redirect" target="_blank">Python 編程的最好搭檔—VSCode 詳細(xì)指南。
在終端輸入以下命令安裝我們所需要的依賴模塊:
pip install cnocr
看到 Successfully installed xxx 則說明安裝成功。
如果你只想使用cnocr,那么只需要安裝上述的cnocr包即可。如果你想試試其他語言的OCR識(shí)別,Tesseract 是更好的選擇。
首先,無論是Windows還是macOS,你都需要安裝 pytesseract:
pip install pytesseract
其次,還需要安裝Tesseract. Tesseract 在macOS下可以使用brew安裝:
brew install tesseract
Windows下安裝tesseract則相對(duì)復(fù)雜。
需要先下載安裝tesseract的程序,然后下載中文簡體字預(yù)訓(xùn)練好的模型包(盡管本教程不會(huì)用tesseract,但還是給大家提供了)。
你可以在Python實(shí)用寶典公眾號(hào)后臺(tái)回復(fù):**tesseract **打包下載。
下載完成后,將tesseract-ocr-setup-4.00.00dev.exe安裝到Tesseract-OCR指定目錄下,復(fù)制該目錄路徑增加到Path中:
并將訓(xùn)練好的模型文件chi_sim.traineddata放入該目錄中,這樣安裝就完成了。
2.cnocr 識(shí)別圖片的中文
cnocr 主要針對(duì)的是排版簡單的印刷體文字圖片,如截圖圖片,掃描件等。目前內(nèi)置的文字檢測和分行模塊無法處理復(fù)雜的文字排版定位。
盡管它分別提供了單行識(shí)別函數(shù)和多行識(shí)別函數(shù),但在本人實(shí)測下,單行識(shí)別函數(shù)的效果非常糟糕,或者說要求的條件十分苛刻,基本上連截圖的文字都識(shí)別不出來。
不過多行識(shí)別函數(shù)還不錯(cuò),使用該函數(shù)識(shí)別的代碼如下:
from cnocr import CnOcr
ocr = CnOcr()
res = ocr.ocr('test.png')
print("Predicted Chars:", res)
圖片版代碼:
用于識(shí)別這個(gè)圖片里的文字:
效果如下:
如果不是很吹毛求疵,這樣的效果已經(jīng)很不錯(cuò)了。
3.pytesseract 識(shí)別圖片的英文
如果你的OCR目的不是中文而是英文,是需要?jiǎng)e的模型的。這里給大家分享Tesseract-OCR,它是一款由HP實(shí)驗(yàn)室開發(fā),由Google維護(hù)的開源OCR引擎。
Tesseract-OCR 可擴(kuò)展性很強(qiáng),你可以基于它訓(xùn)練屬于自己的OCR模型。
現(xiàn)在給大家看看它分類英文的效果,代碼如下:
import pytesseract
from PIL import Image
image = Image.open('test2.png')
code = pytesseract.image_to_string(image, lang='eng')
print(code)
圖片版代碼:
識(shí)別的圖片:
效果如下:
英文效果真的很不錯(cuò),不過官方預(yù)訓(xùn)練好的中文模型效果就比較一般了。
如果你想試試Tesseract識(shí)別中文,只需要將代碼中的eng改為chi_sim即可,不過相信我,效果不忍直視。
-
模塊
+關(guān)注
關(guān)注
7文章
2717瀏覽量
47544 -
編輯器
+關(guān)注
關(guān)注
1文章
806瀏覽量
31199
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論