婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python3使用tesserocr識別字母數(shù)字驗證碼的實(shí)現(xiàn)

Python3使用tesserocr識別字母數(shù)字驗證碼的實(shí)現(xiàn)

熱門標(biāo)簽:江門智能電話機(jī)器人 杭州房產(chǎn)地圖標(biāo)注 如何申請400電話代理 天津塘沽區(qū)地圖標(biāo)注 400電話在線如何申請 智能電話機(jī)器人調(diào)研 地圖標(biāo)注可以遠(yuǎn)程操作嗎 甘肅高頻外呼系統(tǒng) 滴滴地圖標(biāo)注公司

一、背景

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

二、準(zhǔn)備工作

1. 安裝tesserocr

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

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

然后安裝python3對應(yīng)的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,下載本地環(huán)境對應(yīng)的whl文件,如我的是window64位系統(tǒng),python版本是3.5。下載完后,使用cd跳轉(zhuǎn)到whl文件所在目錄,然后 執(zhí)行 ”pip installtesserocr-2.2.2-cp35-cp35m-win_amd64.whl“,即可輕松完成安裝。

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

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

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

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

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

三、識別過程

1. 將圖片變成黑白圖片

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

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

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

處理成黑白圖片的實(shí)現(xiàn)代碼如下:

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

2. 去除圖片噪點(diǎn)

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

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

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

# 噪點(diǎn)處理
def interference_point(img):
  filename = '../images/code_result.png'
  h, w = img.shape[:2]
  # 遍歷像素點(diǎn)進(jìn)行處理
  for y in range(0, w):
    for x in range(0, h):
      # 去掉邊框上的點(diǎn)
      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

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

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

tesserocr.image_to_text(img_result)

識別測試結(jié)果如下:

經(jīng)過多次識別驗證測試,另外也由于這個驗證碼的字體相對比較規(guī)范,所以成功率是相當(dāng)?shù)母吡耍词古紶柕囊淮问。覀円彩强梢赃M(jìn)行重試就又成功了。哈哈, 差不多就是這個樣子啦,歡迎大家指正文中的問題~~不多說了,我要去使用新學(xué)的技術(shù)去做“壞事”了!

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

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

標(biāo)簽:東莞 河池 德宏 臨汾 廊坊 重慶 長春 漢中

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python3使用tesserocr識別字母數(shù)字驗證碼的實(shí)現(xiàn)》,本文關(guān)鍵詞  Python3,使用,tesserocr,識別,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python3使用tesserocr識別字母數(shù)字驗證碼的實(shí)現(xiàn)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python3使用tesserocr識別字母數(shù)字驗證碼的實(shí)現(xiàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    麻豆成人免费电影| 亚洲主播在线播放| 日韩视频永久免费| 正在播放亚洲一区| 3atv一区二区三区| 欧美成人综合网站| 国产亚洲欧美日韩日本| 国产欧美一区视频| 亚洲人亚洲人成电影网站色| 1024亚洲合集| 日韩高清中文字幕一区| 精品一区二区三区在线观看| 国产一区二区三区免费| 不卡一区二区中文字幕| 在线免费视频一区二区| 欧美日韩国产乱码电影| 精品卡一卡二卡三卡四在线| 中文字幕乱码一区二区免费| 一区二区三区在线视频免费观看| 亚洲狠狠爱一区二区三区| 毛片一区二区三区| av日韩在线网站| 欧美一区二区三区视频在线观看| 精品久久人人做人人爰| 亚洲人吸女人奶水| 狠狠久久亚洲欧美| 色偷偷一区二区三区| 日韩久久久久久| 一区二区三区四区中文字幕| 日韩av一区二区三区| av爱爱亚洲一区| 欧美一级生活片| 亚洲老司机在线| 国产一区二区三区四区五区美女| 色综合中文字幕国产| 制服丝袜亚洲色图| 亚洲人成小说网站色在线| 久久aⅴ国产欧美74aaa| 欧美视频在线观看一区| 国产欧美精品一区aⅴ影院| 午夜精品爽啪视频| 91在线观看高清| 国产日韩亚洲欧美综合| 爽好久久久欧美精品| 99精品欧美一区二区三区综合在线| 337p亚洲精品色噜噜狠狠| 一区二区三区不卡视频在线观看| 国产精品资源在线观看| 666欧美在线视频| 一区二区三区成人在线视频| 成人网页在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲一二三四区| 成人av在线网| 国产精品日日摸夜夜摸av| 久久99最新地址| 日韩免费观看高清完整版| 亚洲高清视频中文字幕| 日本福利一区二区| 亚洲免费观看视频| 色狠狠色狠狠综合| 亚洲另类春色校园小说| 91精品91久久久中77777| 亚洲男女毛片无遮挡| 一本一道综合狠狠老| 国产精品九色蝌蚪自拍| www.成人网.com| 亚洲人123区| 欧美在线观看视频在线| 亚洲综合在线视频| 欧美日韩一级二级三级| 亚洲小说春色综合另类电影| 欧美性一二三区| 日日欢夜夜爽一区| 日韩片之四级片| 国产真实乱子伦精品视频| www国产成人免费观看视频 深夜成人网| 老色鬼精品视频在线观看播放| 日韩三级高清在线| 国产乱码精品一区二区三| 国产欧美日韩在线观看| 色一情一乱一乱一91av| 亚洲高清视频在线| 精品国产区一区| www.欧美日韩| 五月激情综合网| 久久久国产一区二区三区四区小说| 国产精品一区二区久激情瑜伽| 国产精品网站在线观看| 91黄色在线观看| 精品一区二区三区在线观看| 中文字幕av不卡| 欧美日韩综合一区| 国产综合色产在线精品 | 亚洲免费在线观看| 91麻豆精品国产综合久久久久久| 免费观看在线色综合| 国产精品色哟哟| 欧美理论电影在线| 国产成人自拍网| 亚洲一区二区三区三| 91精品国产91久久综合桃花| 国产suv一区二区三区88区| 亚洲主播在线播放| 国产婷婷一区二区| 欧美日韩中字一区| 国产精品一区在线观看乱码| 亚洲自拍都市欧美小说| 欧美经典一区二区三区| 555夜色666亚洲国产免| fc2成人免费人成在线观看播放| 日韩av电影一区| 亚洲欧洲av色图| 久久久亚洲午夜电影| 欧美日韩一区在线| av在线播放不卡| 国产一区二三区好的| 日韩精品电影一区亚洲| 亚洲精品国产无天堂网2021| 久久精品夜色噜噜亚洲aⅴ| 欧美精品视频www在线观看 | 欧美性一级生活| 成人精品亚洲人成在线| 久久电影网电视剧免费观看| 午夜精品久久久久久| 亚洲欧美日韩系列| 亚洲国产成人自拍| 久久久高清一区二区三区| 日韩美女一区二区三区四区| 欧美日韩精品欧美日韩精品一综合| www.亚洲人| 国产高清不卡一区二区| 精品亚洲porn| 精品一区二区精品| 精品一区二区三区免费| 麻豆freexxxx性91精品| 蜜臀va亚洲va欧美va天堂| 午夜免费久久看| 午夜av一区二区| 午夜视频久久久久久| 图片区小说区国产精品视频| 一区二区三区欧美日韩| 亚洲猫色日本管| 一区二区欧美在线观看| 亚洲一二三级电影| 天天av天天翘天天综合网色鬼国产| 亚洲电影第三页| 日韩精品一级二级| 蜜臀av一区二区在线免费观看| 免费高清成人在线| 丝瓜av网站精品一区二区| 偷偷要91色婷婷| 国产一区不卡精品| 福利91精品一区二区三区| 白白色亚洲国产精品| 欧美中文字幕亚洲一区二区va在线| 色婷婷精品久久二区二区蜜臀av| 欧洲精品一区二区| 在线不卡a资源高清| 欧美成人性福生活免费看| 国产欧美一区二区在线| 欧美国产一区二区| 亚洲欧洲精品天堂一级| 亚洲一级二级在线| 久久99精品久久久久久久久久久久| 国产在线观看免费一区| 色综合欧美在线| 欧美一区二区三区四区五区| 国产嫩草影院久久久久| 亚洲欧美一区二区三区久本道91| 亚洲国产另类精品专区| 国产一区二区精品久久91| 99精品视频在线免费观看| 91精品国产一区二区人妖| 国产精品日产欧美久久久久| 亚洲激情校园春色| 精品一区二区三区久久| 日本久久一区二区| 久久夜色精品国产噜噜av| 一区二区三区日韩欧美精品| 日韩制服丝袜av| 成人av综合一区| 日韩欧美中文字幕一区| 亚洲欧美在线另类| 精品一区二区三区在线播放 | 国产欧美精品一区二区三区四区| 亚洲天天做日日做天天谢日日欢| 日韩高清欧美激情| 色欧美片视频在线观看在线视频| 欧美一区二区三区四区久久| 亚洲欧美乱综合| 国产91在线观看| 欧美mv和日韩mv的网站| 亚洲资源在线观看| 99热这里都是精品| 国产欧美一区二区精品性| 日韩综合小视频| 欧美三级日本三级少妇99| 国产精品青草久久| 国产精品亚洲成人|