作為學了兩個多月python的小白集惋,深深地感受到“由此可得”的惡意孕似,所以文章力求詳細。
1.工具和環(huán)境
語言: python3.5
系統(tǒng):win7 64位
瀏覽器:chrome
2.安裝
2.1PIL安裝
打開命令提示符刮刑,輸入 pip install Pillow 喉祭,按Enter即可。
關(guān)于PIL模塊的教程雷绢,參考http://www.cnblogs.com/apexchu/p/4231041.html
2.2Tesseract安裝
下載地址:https://code.google.com/p/tesseract-ocr/downloads/list
如果沒有VPN泛烙,翻不了墻,直接網(wǎng)上搜EXE安裝包直接安裝即可翘紊。
注意在 “Language data” 那個選項里胶惰,默認是只勾選了英文的,如果需要進行其他語言的識別霞溪,記得勾選對應(yīng)的語言孵滞。
接著一路下一步就可以了。
安裝完了之后需要設(shè)置 環(huán)境變量鸯匹。
具體步驟是 右擊我的電腦--左擊屬性--高級系統(tǒng)設(shè)置--高級--環(huán)境變量--選中PATH--編輯
在變量值一欄的最后加入 剛才安裝的 Tesseract的路徑坊饶,以英文的分號“;”結(jié)尾。
2.3pytesser3
注意殴蓬,這里是pytesser3匿级,而不是pytesser。
目前網(wǎng)上的教程基本上都是只適用python2.x的pytesser染厅,因為這個我浪費了兩個多小時試了各種教程痘绎,最后才發(fā)現(xiàn)github上有個大神做了一個適用于python3.x的輪子,附上地址https://github.com/songluyi/pytesser3
安裝過程很簡單肖粮,在命令提示符輸入:pip install pytesser3孤页,按Enter。
3.驗證碼識別
3.1圖片降噪
所謂降噪就是將驗證碼上的干擾信息去除掉涩馆。比如背景行施,干擾線,干擾像素等等魂那,只剩下需要識別的文字蛾号,讓圖片變成2進制點陣最好。
from PIL import Image
im = Image.open("7364.jpg")
im_gary = im.point(lambda x: 0 if x<143 else 255) #二值化處理
im_gary.show()
處理后的驗證碼:
處理后背景上的噪點就沒有了涯雅。
3.2 利用pytesser模塊實現(xiàn)識別
from PIL import Image
import pytesser3
print (pytesser3.image_file_to_string('7364.jpg'))
代碼其實很簡單的鲜结,真正的難度是在安裝模塊上面。
如果運行代碼出現(xiàn)了下面這種情況:
那么請修改__init__.py里面第十二行tesseract_exe_name為你tesseract安裝路徑。