校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Python3使用tesserocr識別字母數字驗證碼的實現

Python3使用tesserocr識別字母數字驗證碼的實現

熱門標簽:江門智能電話機器人 杭州房產地圖標注 如何申請400電話代理 天津塘沽區地圖標注 400電話在線如何申請 智能電話機器人調研 地圖標注可以遠程操作嗎 甘肅高頻外呼系統 滴滴地圖標注公司

一、背景

最近有個需求是從一個后臺的留言網站爬取留言數據,后臺管理網站必然涉及到了登錄,登錄就有個驗證碼的問題必須得解決,由于驗證碼是從后端生成的,并且不了解其生成規則,那就只能通過圖像識別技術來做驗證碼識別了!通過查閱資料發現Python中的的tesserocr這個庫好像使用的比較多,所以對這個庫進行了一番研究,并且實現了那個后臺網站驗證碼的識別。

二、準備工作

1. 安裝tesserocr

由于我使用的Python版本是python3.5,所以一下所有操作都是基于python3的,如果有python2的同學,可以找找其他教程~~

首先需要下載tesseract,它為tesserocr提供底層支持。具體下載官方路徑:https://github.com/UB-Mannheim/tesseract/wiki,選擇對應的系統版本,可以選擇一個相對不帶dev的穩定版本下載,如:tesseract-ocr-setup-3.05.02-20180621.exe。然后一路安裝,唯一記得勾選Additional language data(download),勾選可能會用到的語言tessdata,如簡體、繁體中文,數學模塊等,不需要全選,下載tessdata的時間會比較長。

然后安裝python3對應的tesserocr庫,通常我們安裝庫的方法是使用命令pip install tesserocr,但是這里會報錯:“error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools",這個時候不宜直接去下載Microsoft Visual C++ Build Tools,而是使用原始的whl文件方式安裝。tesserocr 的whl官方文件下載路徑:https://github.com/simonflueckiger/tesserocr-windows_build/releases,下載本地環境對應的whl文件,如我的是window64位系統,python版本是3.5。下載完后,使用cd跳轉到whl文件所在目錄,然后 執行 ”pip installtesserocr-2.2.2-cp35-cp35m-win_amd64.whl“,即可輕松完成安裝。

緊接著用例子驗證如何使用:我們找到一個驗證碼圖片:image.jpg,下載到本地磁盤,用代碼進行驗證:

import tesserocr
from PIL import Image
image=Image.open('image.jpg')
print(tesserocr.image_to_text(image))

不出意外,首次運行總是不順利,相信我遇到的坑大多數人都會遇到,大抵錯誤類似:

Traceback (most recent call last):
File "G:\pythonSources\my12306/obtain_message\test.py", line 4, in module>
print(tesserocr.image_to_text(image))
File "tesserocr.pyx", line 2400, in tesserocr._tesserocr.image_to_text
RuntimeError: Failed to init API, possibly an invalid tessdata path: “本地某個路徑”

有個比較簡單粗暴的解決方法是把安裝好的Tesseract-OCR下的tessdata文件夾整個拷貝到提示的那個路徑中,親測有效。

2. 安裝opencv

由于驗證碼需要做一些優化處理,方便更加容易被tesserocr識別,所以需要使用opencv來做一些特殊的處理,安裝opencv比較簡單,直接pip install opencv-python即可。

三、識別過程

1. 將圖片變成黑白圖片

我需要爬取數據的這個后臺網站驗證碼是黃底白字的,這種色差較小的tesserocr識別起來比較困難,稍微試了一下,基本上沒怎么識別對過。。。所以我們需要先將圖片變成色差最大的黑白圖片。初始圖片見下圖:

首先,將圖片變成灰色,并將灰色圖片保存起來方便后續做對比,變成灰色以后的圖片如下:

變成灰色后,通過像素點的顏色值將灰色部分的背景變成白色,白色的具體內容變成黑色,這樣白底黑字的黑白圖片就有了:

處理成黑白圖片的實現代碼如下:

img = Image.open(self.code_path)
# 將圖片變成灰色
img_gray = img.convert('L')
img_gray.save('../images/code_gray.png')
# 轉成黑白圖片
img_black_white = img_gray.point(lambda x: 0 if x > 200 else 255)
img_black_white.save('../images/code_black_white.png')

2. 去除圖片噪點

圖片轉成黑白以后,一些雜點也隨著我們的主體內容變成了黑色的點,這樣對識別的效果也有較大的影響,所以需要想辦法將這些干擾點去掉。這里就需要借助opencv的功能了,在使用opencv去除噪點之前,需要先將圖片做灰值化以及二值化處理,具體代碼如下所示:

# opencv處理
img_cv = cv2.imread('../images/code_black_white.png')
# 灰值化
im = cv2.cvtColor(img_cv, cv2.COLOR_BGR2GRAY)
# 二值化
cv2.adaptiveThreshold(im, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 21, 1)

基本處理之后,就需要消除噪點了,消除噪點的原理也比較簡單,就是遍歷圖片的每一個像素點,找到其上下左右四個像素點位置的顏色,如果這四個點中白色點的數量大于2則說明這個點是噪點,需要將該點的顏色直接置為白色點,在邊框位置的像素點也直接置為白色,因為主要內容一般都是在圖片中間的。以下為處理噪點的代碼:

# 噪點處理
def interference_point(img):
  filename = '../images/code_result.png'
  h, w = img.shape[:2]
  # 遍歷像素點進行處理
  for y in range(0, w):
    for x in range(0, h):
      # 去掉邊框上的點
      if y == 0 or y == w - 1 or x == 0 or x == h - 1:
        img[x, y] = 255
        continue
      count = 0
      if img[x, y - 1] == 255:
        count += 1
      if img[x, y + 1] == 255:
        count += 1
      if img[x - 1, y] == 255:
        count += 1
      if img[x + 1, y] == 255:
        count += 1
      if count > 2:
        img[x, y] = 255
  cv2.imwrite(filename, img)
  return img, filename

噪點處理完畢之后,就是一張非常清晰的圖片了:

這個時候就可以直接使用tesserocr來識別了,具體識別的方式如下:

tesserocr.image_to_text(img_result)

識別測試結果如下:

經過多次識別驗證測試,另外也由于這個驗證碼的字體相對比較規范,所以成功率是相當的高了,即使偶爾的一次失敗,我們也是可以進行重試就又成功了。哈哈, 差不多就是這個樣子啦,歡迎大家指正文中的問題~~不多說了,我要去使用新學的技術去做“壞事”了!

到此這篇關于Python3使用tesserocr識別字母數字驗證碼的實現的文章就介紹到這了,更多相關Python3 tesserocr識別字母數字驗證碼內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python 實現任意區域文字識別(OCR)操作
  • 如何使用Python進行PDF圖片識別OCR
  • python3.7中安裝paddleocr及paddlepaddle包的多種方法
  • Python調用百度OCR實現圖片文字識別的示例代碼
  • python圖片驗證碼識別最新模塊muggle_ocr的示例代碼
  • 如何基于Python代碼實現高精度免費OCR工具
  • 基于Python的OCR實現示例
  • Python基于百度AI實現OCR文字識別
  • python3安裝OCR識別庫tesserocr過程圖解
  • python 如何做一個識別率百分百的OCR

標簽:東莞 河池 德宏 臨汾 廊坊 重慶 長春 漢中

巨人網絡通訊聲明:本文標題《Python3使用tesserocr識別字母數字驗證碼的實現》,本文關鍵詞  Python3,使用,tesserocr,識別,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python3使用tesserocr識別字母數字驗證碼的實現》相關的同類信息!
  • 本頁收集關于Python3使用tesserocr識別字母數字驗證碼的實現的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    自拍偷拍亚洲综合| 激情六月婷婷久久| 久久99国产精品麻豆| 欧美日韩视频在线一区二区| 日日摸夜夜添夜夜添亚洲女人| 欧美日韩精品久久久| 久久99国产乱子伦精品免费| 久久久91精品国产一区二区精品 | 蜜臀av性久久久久av蜜臀妖精| 欧美人妇做爰xxxⅹ性高电影 | 欧美三级视频在线播放| 午夜精品视频一区| 精品99一区二区三区| 白白色亚洲国产精品| 丝袜美腿亚洲综合| 国产欧美一区二区三区鸳鸯浴 | 国产亚洲一区二区三区| 日本高清免费不卡视频| 免费观看30秒视频久久| 中文字幕欧美日韩一区| 在线观看日韩一区| 国产一区二区伦理片| 亚洲成人av福利| 国产日韩亚洲欧美综合| 欧美日韩国产高清一区二区| 成人午夜激情影院| 午夜精品福利久久久| 欧美韩国日本综合| 精品乱人伦一区二区三区| 91美女片黄在线观看| 国产麻豆视频一区二区| 日韩国产精品久久| 亚洲国产成人高清精品| 国产人伦精品一区二区| 日韩欧美自拍偷拍| 欧美日韩免费高清一区色橹橹| 波多野结衣欧美| 极品少妇xxxx精品少妇| 国产精品日韩成人| 日韩精品一区二| 欧美乱妇一区二区三区不卡视频| 97国产一区二区| 成人精品一区二区三区四区 | 久久99精品国产麻豆婷婷洗澡| 亚洲精品国产无天堂网2021| 国产婷婷一区二区| 欧美不卡激情三级在线观看| 欧美久久久久久久久久| 日本伦理一区二区| 色欧美88888久久久久久影院| 成人免费视频一区二区| 成人亚洲一区二区一| 丁香网亚洲国际| 国产盗摄一区二区三区| 粉嫩av一区二区三区在线播放| 国产在线国偷精品免费看| 精品一区在线看| 国产精品亚洲人在线观看| 成人小视频在线| 色悠悠久久综合| 欧美三级电影在线看| 欧美日韩一级大片网址| 91精品国产全国免费观看| 日韩女优视频免费观看| 亚洲精品在线网站| 欧美激情一区三区| 亚洲在线观看免费| 日韩电影在线看| 国产一区二区三区观看| 成人av动漫网站| 在线观看91视频| 日韩三区在线观看| 久久免费视频色| 亚洲欧美国产三级| 污片在线观看一区二区| 国产呦萝稀缺另类资源| youjizz久久| 欧美日韩第一区日日骚| 精品国产91久久久久久久妲己| 久久久精品黄色| 一区二区三区在线视频观看 | 亚洲成年人网站在线观看| 五月婷婷另类国产| 国产呦精品一区二区三区网站| 成人综合婷婷国产精品久久| 色吊一区二区三区| 欧美成人精品二区三区99精品| 国产亚洲一区字幕| 性欧美疯狂xxxxbbbb| 紧缚奴在线一区二区三区| 色老汉一区二区三区| 日韩欧美一区二区不卡| 日韩久久一区二区| 精品亚洲aⅴ乱码一区二区三区| 成人深夜在线观看| 日韩一区二区三区四区五区六区| 91精品国模一区二区三区| 久久人人97超碰com| 亚洲第一二三四区| 国产成人av影院| 欧美一区二区三区日韩视频| 国产精品国产三级国产普通话三级 | 国产精品免费av| 婷婷开心激情综合| 91在线观看一区二区| 亚洲精品在线三区| 五月天精品一区二区三区| 成人av午夜影院| 精品久久人人做人人爰| 亚洲午夜久久久久久久久久久 | 欧美96一区二区免费视频| 99综合电影在线视频| 精品国产乱码久久久久久蜜臀 | 99re在线精品| 久久久亚洲精品石原莉奈| 亚洲1区2区3区视频| 97久久精品人人澡人人爽| 国产农村妇女精品| 国模无码大尺度一区二区三区| 5566中文字幕一区二区电影| 夜夜亚洲天天久久| 欧美羞羞免费网站| 亚洲最新在线观看| 欧美少妇一区二区| 亚洲午夜av在线| 欧美日韩亚洲国产综合| 亚洲综合av网| 欧美群妇大交群中文字幕| 亚洲aⅴ怡春院| 日韩欧美一区二区在线视频| 日本欧美在线观看| 日韩精品中文字幕一区| 久久国产精品一区二区| 日韩亚洲欧美中文三级| 久久成人18免费观看| 精品国产乱码久久久久久夜甘婷婷 | 色婷婷一区二区三区四区| 国产精品三级视频| aaa亚洲精品一二三区| 亚洲欧美日韩一区二区| 色综合中文综合网| 欧美激情中文不卡| 粉嫩在线一区二区三区视频| 国产精品天干天干在观线| 国产成人无遮挡在线视频| 国产精品无圣光一区二区| 99re这里都是精品| 偷拍日韩校园综合在线| 日韩久久免费av| 不卡的av网站| 亚洲国产成人91porn| 欧美一级片在线| 国产一区二区0| 亚洲成在人线免费| 欧美日韩一区在线| 免费观看在线色综合| 国产精品无码永久免费888| 色婷婷av一区二区三区之一色屋| 亚洲伦在线观看| 日韩一级二级三级| 99视频一区二区| 丝瓜av网站精品一区二区| 精品久久久久香蕉网| 91一区二区三区在线观看| 日本不卡高清视频| 亚洲欧洲精品一区二区精品久久久| 欧美视频在线一区二区三区| 国产精品综合在线视频| 自拍偷拍亚洲综合| 久久亚洲精品国产精品紫薇| 在线一区二区三区四区五区| 国内一区二区视频| 日韩专区中文字幕一区二区| 欧美经典一区二区三区| 3751色影院一区二区三区| 99久久er热在这里只有精品66| 天天av天天翘天天综合网色鬼国产| 国产欧美精品国产国产专区| 91精品国产综合久久精品app | 欧美精品一区二区高清在线观看| 99在线精品一区二区三区| 久久69国产一区二区蜜臀| 综合亚洲深深色噜噜狠狠网站| 精品久久久久一区| 91精品国产福利| 欧美日韩国产乱码电影| 91国产免费看| 91片在线免费观看| 成人性生交大片免费看中文| 蜜桃久久精品一区二区| 亚洲香肠在线观看| 亚洲精品视频一区| 亚洲欧洲av一区二区三区久久| 久久男人中文字幕资源站| 精品国产凹凸成av人网站| 日韩一区二区三区视频在线观看| 欧美猛男男办公室激情| 欧美日韩情趣电影| 欧美三级在线播放| 欧美日韩一二区|