日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用tesserocr二值化识别知网登录验证码

發(fā)布時間:2024/3/13 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用tesserocr二值化识别知网登录验证码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • 隨機獲取了知網(wǎng)登錄界面的三個圖片驗證碼,測試 tesserocr 識別驗證碼的準確度

  • 編寫代碼,先測試pic1
import tesserocr # 導入tesserocr模塊 from PIL import Image # 導入圖像處理模塊img = Image.open('pic1.png') code_result = tesserocr.image_to_text(img) print('識別結果:', code_result)
  • pic1識別結果:PEHK.
  • 由于驗證碼圖片中帶有很多干擾線條,導致識別結果不準確(后面多一個點).
  • 接下來,進行圖片灰度測試看看能不能解決問題
import tesserocr # 導入tesserocr模塊 from PIL import Image # 導入圖像處理模塊img = Image.open('pic1.png') lim = img.convert('L') # 圖片灰度化 img.show() # 打印圖片 code_result = tesserocr.image_to_text(lim) print('識別結果:', code_result)
  • 測試結果:PEHK. 還是有個點
  • 繼續(xù)進行圖片二值化
import tesserocr # 導入tesserocr模塊 from PIL import Image # 導入圖像處理模塊 img = Image.open('pic1.png') width = img.size[0] lim = img.convert('L') # 圖片灰度化 # img.show() # 打印圖片threshold = 155 # 設置閾值 data = [] # 定義一個空列表,接收二值化數(shù)據(jù) for i in range(0, 256):if i < threshold:data.append(0)else:data.append(1)bim = lim.point(data,'1') # 圖片二值化 bim.show() # 打印二值化后的圖片 code_result = tesserocr.image_to_text(bim) print('識別結果:', code_result)
  • 二值化結果:成功識別到驗證碼 【PEHK】

  • 經(jīng)過測試,pic2 以及 pic3 在二值化后都可以識別出來,如果二值化后還無法精確識別,則需要調(diào)整二值化閾值(threshold = 155)。關于圖像二值化,參考

-遇到的【問題1】:tessdata路徑報錯

  • 解決: tessdata的路徑出錯,找到tesseract安裝路徑,把tessdata文件夾復制一份到anaconda路徑下面,例如:C:\ProgramData\Anaconda3\tessdata

-遇到的【問題2】:安裝tesserocr模塊失敗

  • 解決:參考我的另一篇博客(https://editor.csdn.net/md/?articleId=123265184)

總結

以上是生活随笔為你收集整理的使用tesserocr二值化识别知网登录验证码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。