Python中識(shí)別圖片/滑塊驗(yàn)證碼準(zhǔn)確率極高的ddddocr庫(kù)詳解
前言
驗(yàn)證碼的種類有很多,它是常用的一種反爬手段,包括:圖片驗(yàn)證碼,滑塊驗(yà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
快速開始
先隨便找個(gè)純英文的驗(yàn)證碼,保持為a1.png
代碼示例
import ddddocr # 導(dǎo)入 ddddocr ocr = ddddocr.DdddOcr() # 實(shí)例化 with open('a1.png', 'rb') as f: # 打開圖片 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: # 打開圖片 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: # 打開圖片 img_bytes = f.read() # 讀取圖片 res2 = ocr.classification(img_bytes) # 識(shí)別 print(res2) with open('a3.png', 'rb') as f: # 打開圖片 img_bytes = f.read() # 讀取圖片 res3 = ocr.classification(img_bytes) # 識(shí)別 print(res3) with open('a4.png', 'rb') as f: # 打開圖片 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
解決問題的重點(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開始語(yǔ)句的征程
前面做了很多鋪墊了,真正的編程我們還沒有講過,各位童鞋也許早就不耐煩了,好吧,今天我們就從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-05Python利用Faiss庫(kù)實(shí)現(xiàn)ANN近鄰搜索的方法詳解
這篇文章主要介紹了Python利用Faiss庫(kù)實(shí)現(xiàn)ANN近鄰搜索的方法,文中通過示例代碼介紹的非常詳細(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ì)大家有所幫助。一起跟隨小編過來(lái)看看吧2021-03-03基于Python+Matplotlib實(shí)現(xiàn)直方圖的繪制
Matplotlib是Python的繪圖庫(kù),它能讓使用者很輕松地將數(shù)據(jù)圖形化,并且提供多樣化的輸出格式。本文將為大家介紹如何用matplotlib繪制直方圖,感興趣的朋友可以學(xué)習(xí)一下2022-04-04Python?np.where()的詳解以及代碼應(yīng)用
numpy里有一個(gè)非常神奇的函數(shù)叫做np.where()函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python?np.where()的詳解以及代碼應(yīng)用的相關(guān)資料,文中通過實(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)境展開,文中有非常詳細(xì)的介紹,需要的朋友可以參考下2021-06-06