python3圖片驗證碼識別


http://my.cnki.net/elibregister/CheckCode.aspx每次刷新該網頁可以得到新的驗證碼進行測試

 

以我本次查看的驗證碼圖片為例,右鍵保存圖片為image.jpg

 

下面用代碼來對該圖片驗證碼進行識別:

#!usr/bin/env python # coding:utf-8

import tesserocr from PIL import Image image = Image.open(r'C:\Users\fengyun\Desktop\image.jpg') #傳入你所保存的圖片路徑 result = tesserocr.image_to_text(image) print(result)

最后輸出結果:P4CJ,代表圖片驗證碼識別成功。

對於圖片上有線條干擾的,可能不一定能成功,比如下面這個圖片用上面的方法就不能正確識別

 

對於這種情況,可以對圖片進行灰度和二值化處理,下面以代碼來實現

#!usr/bin/env python # coding:utf-8

import tesserocr from PIL import Image image = Image.open(r'C:\Users\fengyun\Desktop\image.png') image = image.convert('L') #轉化為灰度圖 threshold = 127             #設定的二值化閾值 table = [] #table是設定的一個表,下面的for循環可以理解為一個規則,小於閾值的,就設定為0,大於閾值的,就設定為1 for i in range(256): if i < threshold: table.append(0) else: table.append(1) image = image.point(table,'1') #對灰度圖進行二值化處理,按照table的規則(也就是上面的for循環) result = tesserocr.image_to_text(image) #對去噪后的圖片進行識別 print(result)

這樣成功輸出了結果PFRT,關於圖片驗證碼的話題暫時就到這。

 


免責聲明!

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



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