導(dǎo)語(yǔ)
圖片文字識(shí)別也是有點(diǎn)意思哈,苦于現(xiàn)在用Python實(shí)現(xiàn)圖片中文識(shí)別的方法很有限,不知死活的胖子打算記錄一下自己揮淚的實(shí)現(xiàn)過(guò)程……
1. 工具準(zhǔn)備
筆者使用的是Tesseract,必須要好好感謝Google為人類各方面生活品質(zhì)提升所做出的努力與貢獻(xiàn)!(鼓掌!!)Tesseract是一個(gè)Google支持的開源ocr項(xiàng)目骄噪,用于識(shí)別圖片中文字,各國(guó)文字任卿選啊哈哈哈蠢箩,詳細(xì)安裝教程及其使用方法可以戳這里(Windows環(huán)境記得將tesseract.exe目錄添加進(jìn)系統(tǒng)環(huán)境變量链蕊,方便Python調(diào)用)。使用Tesseract ocr有兩種方式:動(dòng)態(tài)庫(kù)方式 libtesseract和執(zhí)行程序方式 tesseract.exe谬泌,筆者使用的是第二個(gè)方式滔韵,也方便Python調(diào)用。Tesseract其他中文介紹可以參考Python下Tesseract Ocr引擎及安裝介紹呵萨。
2. 圖片文字識(shí)別
由于tesseract.exe是直接用terminal調(diào)用的奏属,所以這里使用到了os.popen用于運(yùn)行terminal命令。
import os
def getresults(resultFolder, imgFolder):
"""
Parameters
----------
resultFolder: results directory
imgFolder: image directory
"""
# Windows
# cmd = 'cmd.exe /k tesseract.exe ' + img + 'result -l chi_sim+eng'
# OS X
# cmd = 'tesseract ' + img + ' result -l chi_sim'
imgList = os.listdir(imgFolder)
os.chdir(imgFolder)
for i in range(1, len(imgList)):
resultFile = ' %sresult-%s' % (resultFolder, imgList[i].split('.')[0])
cmd = 'tesseract ' + imgList[i] + resultFile + ' -l chi_sim'
os.popen(cmd)
[一定要特別mark一下潮峦!][null-link]
在Windows環(huán)境下調(diào)用terminal對(duì)tesseract的命令時(shí),tesseract
后一定要加.exe
勇婴!要加.exe
忱嘹!要加.exe
!例如:cmd.exe /k tesseract.exe testImg.jpg result -l chi_sim+eng
不知死活的筆者之前在網(wǎng)上沒(méi)找到對(duì)于該問(wèn)題的解決方法耕渴,可費(fèi)了老大勁……
[null-link]: chrome://not-a-link
3. 其他
在筆者摸索使用Python處理圖片時(shí)拘悦,發(fā)現(xiàn)一個(gè)非常好的包:opencv,等之后找時(shí)間試試哈哈哈哈……