python驗證碼處理(1)


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


一.普通圖形驗證碼

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM