目錄javascript
這篇博客及以後的系列,我會向你們介紹各類驗證碼的識別。包括普通圖形驗證碼,極驗滑動驗證碼,點觸驗證碼,微博宮格驗證碼。
java
以前的博客已向你們介紹了簡單的圖形驗證碼的處理過程,可是會和實際的有所差異,這是由於驗證碼內的多餘線條與圖案干擾了圖片的識別。所以,對於這種狀況,須要咱們進行一些處理,而後才能識別出正確的結果,下面是進行處理的方法。
app
能夠用Image對象的convert()方法傳入參數L,就能夠把圖片轉化爲灰度圖像,以下代碼:code
img = Image.open('1.jpg') image = img.convert('L') image.show()
結果爲:
對象
能夠傳入1進行二值化處理,以下代碼:blog
img = Image.open('1.jpg') image = img.convert('1') image.show()
結果爲:
圖片
還能夠指定二值化的閾值,默認的閾值是127,要指定的話必需要先轉化爲灰度圖像,再指定二值化的閾值。代碼以下:ip
image = Image.open('1.jpg') # 先轉化爲灰度圖片 image = image.convert('L') threshold = 180 # 設置閾值 my = [] for i in range(256): if i < threshold: my.append(0) else: my.append(1) # 二值化處理 image = image.point(my,'1') image.show()
這裏原來的驗證碼中的線條已經去除,驗證碼變得很清楚。這個時候從新識別驗證碼,結果以下:
博客