Python中識(shí)別圖片/滑塊驗(yàn)證碼準(zhǔn)確率極高的ddddocr庫(kù)詳解
前言
驗(yàn)證碼的種類有很多,它是常用的一種反爬手段,包括:圖片驗(yàn)證碼,滑塊驗(yàn)證碼,等一些常見(jiàn)的驗(yàn)證碼場(chǎng)景。
識(shí)別驗(yàn)證碼的python 庫(kù)有很多,用起來(lái)也并不簡(jiǎn)單,這里推薦一個(gè)簡(jiǎn)單實(shí)用的識(shí)別驗(yàn)證碼的庫(kù) ddddocr (帶帶弟弟ocr)庫(kù).
環(huán)境準(zhǔn)備
python 版本要求小于等于python3.9 版本
pip 安裝
pip install ddddocr
下載的安裝包比較大,一般用國(guó)內(nèi)的下載源可以加快下載速度
pip install ddddocr -i https://pypi.douban.com/simple
github地址 https://github.com/sml2h3/ddddocr
快速開(kāi)始
先隨便找個(gè)純英文的驗(yàn)證碼,保持為a1.png

代碼示例
import ddddocr # 導(dǎo)入 ddddocr
ocr = ddddocr.DdddOcr() # 實(shí)例化
with open('a1.png', 'rb') as f: # 打開(kāi)圖片
img_bytes = f.read() # 讀取圖片
res = ocr.classification(img_bytes) # 識(shí)別
print(res)
運(yùn)行結(jié)果

已經(jīng)能識(shí)別到 xnen ,但是會(huì)出現(xiàn)"歡迎使用ddddocr,本項(xiàng)目專注帶動(dòng)行業(yè)內(nèi)卷…"提示語(yǔ), 可以加一個(gè)參數(shù)show_ad=False
import ddddocr # 導(dǎo)入 ddddocr
ocr = ddddocr.DdddOcr(show_ad=False) # 實(shí)例化
with open('a1.png', 'rb') as f: # 打開(kāi)圖片
img_bytes = f.read() # 讀取圖片
res = ocr.classification(img_bytes) # 識(shí)別
print(res)
圖片驗(yàn)證碼
識(shí)別一下三種驗(yàn)證碼



代碼示例
import ddddocr # 導(dǎo)入 ddddocr
ocr = ddddocr.DdddOcr(show_ad=False) # 實(shí)例化
with open('a2.png', 'rb') as f: # 打開(kāi)圖片
img_bytes = f.read() # 讀取圖片
res2 = ocr.classification(img_bytes) # 識(shí)別
print(res2)
with open('a3.png', 'rb') as f: # 打開(kāi)圖片
img_bytes = f.read() # 讀取圖片
res3 = ocr.classification(img_bytes) # 識(shí)別
print(res3)
with open('a4.png', 'rb') as f: # 打開(kāi)圖片
img_bytes = f.read() # 讀取圖片
res4 = ocr.classification(img_bytes) # 識(shí)別
print(res4)
運(yùn)行結(jié)果
giv6j
zppk
4Tskh
滑塊驗(yàn)證碼
滑塊驗(yàn)證碼場(chǎng)景如下場(chǎng)景示例

先摳出2張圖片,分別為background.png 和 target.png


解決問(wèn)題的重點(diǎn)是計(jì)算缺口的位置
import ddddocr
det = ddddocr.DdddOcr(det=False, ocr=False, show_ad=False)
with open('target.png', 'rb') as f:
target_bytes = f.read()
with open('background.png', 'rb') as f:
background_bytes = f.read()
res = det.slide_match(target_bytes, background_bytes, simple_target=True)
print(res)
運(yùn)行結(jié)果
{'target_y': 0, 'target': [184, 58, 246, 120]}
target 的四個(gè)值就是缺口位置的左上角和右下角的左邊位置
識(shí)別中文
識(shí)別圖片上的文字

import ddddocr
import cv2
det = ddddocr.DdddOcr(det=True)
with open("test.png", 'rb') as f:
image = f.read()
poses = det.detection(image)
im = cv2.imread("test.png")
for box in poses:
x1, y1, x2, y2 = box
im = cv2.rectangle(im, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=2)
cv2.imwrite("result.jpg", im)
保存后的圖片

到此這篇關(guān)于Python中識(shí)別圖片/滑塊驗(yàn)證碼準(zhǔn)確率極高的ddddocr庫(kù)詳解的文章就介紹到這了,更多相關(guān)Python ddddocr庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
跟老齊學(xué)Python之從if開(kāi)始語(yǔ)句的征程
前面做了很多鋪墊了,真正的編程我們還沒(méi)有講過(guò),各位童鞋也許早就不耐煩了,好吧,今天我們就從if語(yǔ)句來(lái)踏上我們的征程2014-09-09
深入解析NumPy中的Broadcasting廣播機(jī)制
在吳恩達(dá)老師的深度學(xué)習(xí)專項(xiàng)課程中,老師有提到NumPy中的廣播機(jī)制,同時(shí)那一周的測(cè)驗(yàn)也有涉及到廣播機(jī)制的題目。那么,到底什么是NumPy中的廣播機(jī)制?本文就來(lái)介紹一下2021-05-05
Python利用Faiss庫(kù)實(shí)現(xiàn)ANN近鄰搜索的方法詳解
這篇文章主要介紹了Python利用Faiss庫(kù)實(shí)現(xiàn)ANN近鄰搜索的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
從Pytorch模型pth文件中讀取參數(shù)成numpy矩陣的操作
這篇文章主要介紹了從Pytorch模型pth文件中讀取參數(shù)成numpy矩陣的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
基于Python+Matplotlib實(shí)現(xiàn)直方圖的繪制
Matplotlib是Python的繪圖庫(kù),它能讓使用者很輕松地將數(shù)據(jù)圖形化,并且提供多樣化的輸出格式。本文將為大家介紹如何用matplotlib繪制直方圖,感興趣的朋友可以學(xué)習(xí)一下2022-04-04
Python?np.where()的詳解以及代碼應(yīng)用
numpy里有一個(gè)非常神奇的函數(shù)叫做np.where()函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python?np.where()的詳解以及代碼應(yīng)用的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
教你用Python+selenium搭建自動(dòng)化測(cè)試環(huán)境
今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著如何用Python+selenium搭建自動(dòng)化測(cè)試環(huán)境展開(kāi),文中有非常詳細(xì)的介紹,需要的朋友可以參考下2021-06-06

