python識別圖像并提取文字的實(shí)現(xiàn)?很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了文成免費(fèi)建站歡迎大家使用!1. 依賴安裝
yum install -y automake autoconf libtool gcc gcc-c++
2. 安裝leptonica
Leptonica主要用于圖像處理和圖像分析
原則上所有的庫文件都是可以直接用yum安裝的,如果想要具體的某個(gè)版本,可以前往官方源下載對應(yīng)版本然后按照對應(yīng)方式編譯
wget http://www.leptonica.org/source/leptonica-1.74.4.tar.gz tar -zxvf leptonica-1.74.4.tar.gz cd leptonica-1.74.4/ ./configure make && make install
3. 安裝tesseract
其他各版本可以在這里下載并自行編譯,也提供直接使用的文件。
yum install tesseract
4. 驗(yàn)證安裝
tesseract --version
5. 語言包下載
前往tesseract-ocr/tessdata下載相應(yīng)的語言包,然后將之移動到tessdata目錄下,可以用whereis tesseract查看一下具體的目錄,我的是/usr/share/tesseract/tessdata/mv *.traineddata /usr/local/share/tessdata/
6. 查看目前已下載的語言
tesseract --list-langs
使用
# tesseract Usage: tesseract --help | --help-psm | --help-oem | --version tesseract --list-langs [--tessdata-dir PATH] tesseract --print-parameters [options...] [configfile...] tesseract imagename|stdin outputbase|stdout [options...] [configfile...] OCR options: --tessdata-dir PATH Specify the location of tessdata path. --user-words PATH Specify the location of user words file. --user-patterns PATH Specify the location of user patterns file. -l LANG[+LANG] Specify language(s) used for OCR. -c VAR=VALUE Set value for config variables. Multiple -c arguments are allowed. --psm NUM Specify page segmentation mode. --oem NUM Specify OCR Engine mode. NOTE: These options must occur before any configfile.
語法
tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]
imagename:圖片名字
outputbase:指定輸出,如果希望直接輸出而不是保存到文件,那么就使用 stdout,否則這個(gè)參數(shù)將會作為保存結(jié)果的文件的前綴
-l指定語言文件,默認(rèn)使用英文
tesseract --print-parameters:查看更多參數(shù)信息
使用-c指定單項(xiàng)參數(shù)的值或者將配置寫入配置文件放在命令最后(支持多個(gè)配置文件)
psm 識別圖像的方式
0:定向腳本監(jiān)測(OSD)
1: 使用OSD自動分頁
2 :自動分頁,但是不使用OSD或OCR(Optical Character Recognition,光學(xué)字符識別)
3 :全自動分頁,但是沒有使用OSD(默認(rèn))
4 :假設(shè)可變大小的一個(gè)文本列。
5 :假設(shè)垂直對齊文本的單個(gè)統(tǒng)一塊。
6 :假設(shè)一個(gè)統(tǒng)一的文本塊。
7 :將圖像視為單個(gè)文本行。
8 :將圖像視為單個(gè)詞。
9 :將圖像視為圓中的單個(gè)詞。
10 :將圖像視為單個(gè)字符。
python中使用
Tesseract安裝完成后可以很方便的被Python調(diào)用,但是需要pillow和pytesseract的支持。
python中轉(zhuǎn)換
image_to_data(image, lang=None, config='', nice=0, output_type=Output.STRING)
image Object,由Tesseract處理的圖像的PIL Image/NumPy數(shù)組
lang String,Tesseract語言代碼字符串
config String,任何其他配置字符串,例如:config='--psm 6'
語言文件可以疊加,用“+”隔開
我們也可以在這里進(jìn)行tessdata路徑的設(shè)置,跟在config里面即可
更多配置包括config和psm都和tesseract類似
實(shí)例:
流程: 打開圖片,配置,轉(zhuǎn)換,可以通過Image的open或者cv2的imread打開圖片,之后對圖片進(jìn)行對比度增強(qiáng),降噪等處理,效果會好一些。
from PIL import Image import pytesseract class Languages: CHS = 'chi_sim' ENG = 'eng' def img_to_str(image_path, lang=Languages.ENG): return pytesseract.image_to_string(Image.open(image_path), lang) print(img_to_str('pic/numu.png', lang=Languages.ENG)) print(img_to_str('pic/pro.png', lang=Languages.ENG))
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。