python 使用 tesserocr 來獲取圖片驗證碼


獲取圖片

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

 

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

 

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

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,代表圖片驗證碼識別成功。

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

  

 

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

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,關於圖片驗證碼的話題暫時就到這。

 

 

*******尊重作者,本文是本人轉載自:https://www.cnblogs.com/sjfeng1987/p/9856693.html    ******* 


免責聲明!

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



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