python驗證碼(一)


  這篇博客及之後的系列,我會向大家介紹各種驗證碼的識別。包括普通圖形驗證碼,極驗滑動驗證碼,點觸驗證碼,微博宮格驗證碼。


一.普通圖形驗證碼

  之前的博客已向大家介紹了簡單的圖形驗證碼的處理過程,但是會和實際的有所差別,這是因爲驗證碼內的多餘線條與圖案干擾了圖片的識別。因此,對於這種情況,需要我們進行一些處理,然後才能識別出正確的結果,下面是進行處理的方法。

1.灰度處理

  可以用Image對象的convert()方法傳入參數L,就可以把圖片轉化爲灰度圖像,如下代碼:

img = Image.open('1.jpg')
image = img.convert('L')
image.show()

結果爲:

2.二值化處理

  可以傳入1進行二值化處理,如下代碼:

img = Image.open('1.jpg')
image = img.convert('1')
image.show()

結果爲:

  還可以指定二值化的閾值,默認的閾值是127,要指定的話必須要先轉化爲灰度圖像,再指定二值化的閾值。代碼如下:

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()

  這裏原來的驗證碼中的線條已經去除,驗證碼變得很清楚。這個時候重新識別驗證碼,結果如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章