說明
本文主要為參考博客:【python 圖像識別】python 身份證號碼識別 自己在進行實踐過程中遇到的一些問題的記錄。
實踐環境
anaconda3+python3.6
macos
實踐記錄
1、在執行這段時候會提示沒有reload模塊,原因是博主使用python2寫的,需要聲明編碼方式,而python3 中系統默認使用的就是UTF-8編碼,所以需要注釋掉。
參考:NameError: name 'reload' is not defined 問題
2、在中間定義的幾個函數中涉及print輸出的,都需要把print后面的內容括號起來
3、TesseractNotFoundError: tesseract is not installed or it's not in your path
提示:tesseract 不在環境變量中或者沒有安裝
需要修改源碼中的
tesseract_cmd = 'tesseract'
在運行代碼的時候,提示沒有pytesseract模塊,然后安裝了這個包,上面鏈接提示的這個文件理論上應該在這個包里面
在安裝包中pytesseract.py中的35行位置
那問題是現在這個路徑怎么修改呢?
作者修改好的內容,指定到的是一個exe結尾的文件,也提到需要安裝這個tesseract-ocr軟件
安裝說明:https://github.com/tesseract-ocr/tesseract/wiki
上面提到tesseract提供類似API的功能去實現從圖片中提取文字信息,所以這個軟件還必須要進行安裝。
我這里對應安裝的是mac版,參考homebrew的安裝方式
沒有homebrew的童鞋歡迎參考官網進行安裝,mac安裝軟件神器,用它官網的話來講是 “The missing package manager for macOS”
安裝好了,那么問題是,那么多文件夾,應該把路徑對應到那個文件呢?沒什么頭緒,難道不用像windows系統那樣指定 exe文件?
先不管對應到哪個路徑,先在來試試安裝完tesseract后執行py程序有什么變化
果然,可以跑出來了,不過證件號碼沒識別出來
在終端試一下執行
tesseract test1.png output
能識別一部分出來,不過效果有點差,身份證號碼部分基本能識別出來,其他部分效果就很差了,估計是默認的語料庫里面,沒中文部分。
既然終端可以直接識別,為什么調用pytesseract.py無法進行識別呢?還是需要設置路徑么?
修改一下pytesseract.py中的35行
tesseract_cmd = '/usr/local/Cellar/tesseract/4.0.0/share/tessdata/'
提示:TesseractNotFoundError: /usr/local/Cellar/tesseract/ is not installed or it's not in your path