python3爬蟲之驗證碼的識別——圖形驗證碼

環境安裝見博文《python3爬蟲之驗證碼的識別——環境安裝

 

圖形驗證看似是最爲簡單的驗證,可是由於涉及到了不少圖像處理方面的知識,想要作一個通用的驗證程序並不簡單html

而且tesserocr自帶的訓練庫識別的效果然是差強人意啊python

本例經過中國知網註冊頁面的驗證碼爲例 http://my.cnki.net/elibregister/commonRegister.aspx瀏覽器

經過瀏覽器工具將驗證碼圖片保存到python工程文件下app

 

主要代碼爲(驗證碼圖片不通過任何處理):工具

import tesserocr from PIL import Image image = Image.open('tzxw.jpg') image.show() res = tesserocr.image_to_text(image)# 在pycharm中有兼容性問題
print(res)

ps:tesserocr.image_to_text( ) 這個方法可能在PyCharm裏會標紅,可是不影響運行測試

 

輸出結果爲空,即未識別出來,所以咱們須要將圖片處理一下,例如減小背景噪點、增長對比度之類spa

本例中採用設定一個閾值將圖片轉換爲二值圖.net

threshold = 135 # 閾值
table = [] for i in range(256): if i < threshold: table.append(0) else: table.append(1) image = image.point(table,'1')

閾值設定的大小與識別結果息息相關,固然不一樣的圖片可能會有不一樣的閾值才能識別出來。所以這個方法並非一個通用的方法code

本例中輸出結果:htm

(二值圖)

輸出結果也是tzxw

 

but!

換了幾張同樣大小的圖測試發現,閾值的選擇各不相同,有的圖片就是怎麼都識別不了或者識別錯誤

相關文章
相關標籤/搜索