日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

如何用python識別滑塊驗(yàn)證碼中的缺口

瀏覽:190日期:2022-06-23 15:20:58

驗(yàn)證碼往往是爬蟲路上的一只攔路虎,而其花樣也是層出不窮:圖片驗(yàn)證、滑塊驗(yàn)證、交互式驗(yàn)證、行為驗(yàn)證等。隨著OCR技術(shù)的成熟,圖片驗(yàn)證已經(jīng)漸漸淡出主流,而滑塊驗(yàn)證越來越多地出現(xiàn)在大眾視野。“這么厲害,這小子長啥樣呢?”沒錯,它就長這損sai:

如何用python識別滑塊驗(yàn)證碼中的缺口

解決它的方法也很直觀,首先找到缺口的位置(通常只需要X軸的位置),然后拖動滑塊即可。今天kimol君將帶領(lǐng)大家用python識別出滑塊驗(yàn)證中的缺口位置。

一、缺口識別

識別圖片中的缺口,主要是利用python中的圖像處理庫cv2,其安裝方法如下:

pip install opencv-python

注:這里并不是“pip install cv2”哦~

1.讀取圖片

滑塊驗(yàn)證的圖片分為兩部分,一個是背景圖片:

如何用python識別滑塊驗(yàn)證碼中的缺口

另一個是缺口圖片:

如何用python識別滑塊驗(yàn)證碼中的缺口

利用imread函數(shù)將其讀取:

# 讀取背景圖片和缺口圖片bg_img = cv2.imread(’bg.jpg’) # 背景圖片tp_img = cv2.imread(’tp.png’) # 缺口圖片2.識別圖片邊緣

為了更好地將缺口與背景匹配,我們首先得識別出圖片的邊緣:

# 識別圖片邊緣bg_edge = cv2.Canny(bg_img, 100, 200)tp_edge = cv2.Canny(tp_img, 100, 200)

這一步很關(guān)鍵!否則缺口匹配將不準(zhǔn)確。

這里得到了圖片邊緣的灰度圖,進(jìn)一步將其圖片格式轉(zhuǎn)為RGB格式:

# 轉(zhuǎn)換圖片格式bg_pic = cv2.cvtColor(bg_edge, cv2.COLOR_GRAY2RGB)tp_pic = cv2.cvtColor(tp_edge, cv2.COLOR_GRAY2RGB)

轉(zhuǎn)換后的背景圖為:

如何用python識別滑塊驗(yàn)證碼中的缺口

轉(zhuǎn)換后的缺口圖為:

如何用python識別滑塊驗(yàn)證碼中的缺口

3.缺口匹配

利用cv2中的matchTemplate函數(shù),可以在背景圖片中搜索對應(yīng)的缺口,具體代碼如下:

# 缺口匹配res = cv2.matchTemplate(bg_pic, tp_pic, cv2.TM_CCOEFF_NORMED)

res為每個位置的匹配結(jié)果,代表了匹配的概率,選出其中概率最高的點(diǎn),即為缺口匹配的位置:

min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res) # 尋找最優(yōu)匹配

min_val,max_val,min_loc,max_loc分別為匹配的最小值、匹配的最大值、最小值的位置、最大值的位置。ps.當(dāng)然,這里完全可以自己寫一個循環(huán)來實(shí)現(xiàn),但是有現(xiàn)成的函數(shù)為什么不用呢?

至此,我們已經(jīng)有了缺口的位置,其X軸坐標(biāo)為:

X = max_loc[0]

為了更直觀地展示缺口的位置,我們將缺口用矩形框標(biāo)注出來:

# 繪制方框th, tw = tp_pic.shape[:2] tl = max_loc # 左上角點(diǎn)的坐標(biāo)br = (tl[0]+tw,tl[1]+th) # 右下角點(diǎn)的坐標(biāo)cv2.rectangle(bg_img, tl, br, (0, 0, 255), 2) # 繪制矩形cv2.imwrite(’out.jpg’, bg_img) # 保存在本地

結(jié)果如下:

如何用python識別滑塊驗(yàn)證碼中的缺口

完美~ 收工!!!

二、完整代碼

為了在實(shí)際應(yīng)用中更方便的使用,我們將代碼封裝為一個函數(shù):

def identify_gap(bg,tp,out): ’’’ bg: 背景圖片 tp: 缺口圖片 out:輸出圖片 ’’’ # 讀取背景圖片和缺口圖片 bg_img = cv2.imread(bg) # 背景圖片 tp_img = cv2.imread(tp) # 缺口圖片 # 識別圖片邊緣 bg_edge = cv2.Canny(bg_img, 100, 200) tp_edge = cv2.Canny(tp_img, 100, 200) # 轉(zhuǎn)換圖片格式 bg_pic = cv2.cvtColor(bg_edge, cv2.COLOR_GRAY2RGB) tp_pic = cv2.cvtColor(tp_edge, cv2.COLOR_GRAY2RGB) # 缺口匹配 res = cv2.matchTemplate(bg_pic, tp_pic, cv2.TM_CCOEFF_NORMED) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res) # 尋找最優(yōu)匹配 # 繪制方框 th, tw = tp_pic.shape[:2] tl = max_loc # 左上角點(diǎn)的坐標(biāo) br = (tl[0]+tw,tl[1]+th) # 右下角點(diǎn)的坐標(biāo) cv2.rectangle(bg_img, tl, br, (0, 0, 255), 2) # 繪制矩形 cv2.imwrite(out, bg_img) # 保存在本地 # 返回缺口的X坐標(biāo) return tl[0]

這里選擇了讀取本地圖片文件,在爬蟲過程中其實(shí)不是特別方便。如果有感興趣的小伙伴,可以自己改動一下,將輸入改為圖片流即可。

以上就是如何用python識別滑塊中的缺口的詳細(xì)內(nèi)容,更多關(guān)于python識別滑塊中的缺口的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩三区在线| 桃色av一区二区| 午夜国产精品视频| 在线日韩电影| 99精品99| 亚洲精品网址| 99香蕉国产精品偷在线观看 | 蜜臀av性久久久久蜜臀aⅴ流畅| 国产一区亚洲| 噜噜噜躁狠狠躁狠狠精品视频| 久久亚洲影院| 日韩精品第一| 麻豆精品在线视频| 欧美丰满日韩| 欧美一区二区三区激情视频| 日韩亚洲国产欧美| 天堂俺去俺来也www久久婷婷| 日韩欧美激情电影| 国产亚洲一区二区三区不卡| 国产精品亚洲综合色区韩国| 国内在线观看一区二区三区| 一本大道色婷婷在线| 精品国产亚洲一区二区三区| 久久黄色影视| 国产一区二区三区四区五区 | 国产一区二区三区四区| 午夜影院一区| 久久av影院| 美女久久久久| 日韩电影免费在线观看| 中文字幕在线视频久| 日韩av一区二| 日韩一区二区三免费高清在线观看| 日韩久久精品网| 日本黄色精品| 麻豆精品99| 欧美在线首页| 国产精品一国产精品| 日韩av中文在线观看| 久久久久伊人| 激情久久一区二区| 成人看片网站| 日本aⅴ精品一区二区三区| 国产精品一在线观看| 国产剧情一区二区在线观看| 国产精品a级| 日韩中文字幕1| 欧美成人aaa| 日韩一区二区三区免费视频| 久久精品主播| 亚洲视频电影在线| 精品国产美女a久久9999| 亚洲精品国产偷自在线观看| 国产人成精品一区二区三| 日产精品一区| 婷婷视频一区二区三区| 中文av在线全新| 亚洲人成网站在线在线观看| 精品国产亚洲一区二区在线观看| 午夜日韩在线| 欧美日韩调教| 亚洲福利一区| 国产福利一区二区精品秒拍 | 国产午夜一区| 性欧美xxxx免费岛国不卡电影| 欧美一区二区三区久久精品| 韩国精品主播一区二区在线观看 | 久久夜夜操妹子| 亚洲三级网址| 91精品一区国产高清在线gif| 免费的成人av| 成人看片网站| 欧美黑人巨大videos精品| 99国产精品视频免费观看一公开| 黄色网一区二区| 日韩国产在线观看| 9国产精品视频| 欧美羞羞视频| 欧美91在线| 日韩精品导航| 日韩在线播放一区二区| 欧美香蕉视频| 精品午夜视频| 综合色一区二区| 国产综合精品一区| 国产一区二区三区探花| 欧美日韩一区二区国产| 免费精品视频最新在线| 欧美成人午夜| 欧美二三四区| 福利一区二区| 欧美极品中文字幕| 久久精品97| 中文字幕亚洲精品乱码| 久久影院一区| 欧洲av不卡| 国产盗摄——sm在线视频| 91精品国产经典在线观看| 亚洲在线观看| 在线一区视频| 国产一区日韩欧美| av亚洲一区二区三区| 国产九九精品| 久久精品99国产精品日本| 日韩欧美美女在线观看| 中文字幕免费精品| 日韩一区欧美二区| 日韩一区二区久久| 亚洲午夜精品久久久久久app| 久久久久免费| 国产精品99在线观看| 国产精品色婷婷在线观看| 日韩激情中文字幕| 亚洲另类黄色| 日韩av网站在线观看| 亚洲精品视频一二三区| 视频在线在亚洲| 国产亚洲激情| 一区三区视频| 国产精品毛片一区二区三区| 亚洲激情中文| 在线综合亚洲| 亚洲开心激情| 日本电影久久久| 国产欧美自拍| 另类欧美日韩国产在线| 久久精品人人| 韩国久久久久久| 成人日韩精品| 国产国产精品| 午夜在线一区| 中文字幕av一区二区三区四区| 日韩高清在线一区| 国产日韩一区二区三免费高清| 国产精品115| 久久男人av资源站| 激情综合激情| 蜜桃久久久久久| 日韩不卡手机在线v区| 国产精品久久久久9999高清| 国产福利一区二区三区在线播放| 成人国产精品久久| 久久精品观看| 亚洲一区二区动漫| 日韩精品免费视频人成| 国产精品sss在线观看av| 成人精品视频| 今天的高清视频免费播放成人| 天堂av在线一区| 日韩在线黄色| 久久久久伊人| 欧美一区二区三区高清视频| 蜜桃av一区二区| 美女国产精品久久久| 三上悠亚国产精品一区二区三区| 在线一区视频| 国产精品一区二区av交换| jizzjizz中国精品麻豆| 久久久久久久久久久妇女| 亚洲免费在线| 欧美视频久久| 秋霞影视一区二区三区| 亚洲一卡久久| 国产精品成人自拍| 久久久天天操| 综合激情五月婷婷| 精品国产91| 制服诱惑一区二区| 国产毛片精品| 欧美日韩中文字幕一区二区三区| 一区二区三区午夜视频| 精品视频99| 香蕉成人久久| 国产剧情在线观看一区| 亚洲不卡av不卡一区二区| 日韩1区2区3区| 日韩免费av| 日韩和欧美一区二区| 日本高清不卡一区二区三区视频| 亚洲人成亚洲精品| 精品丝袜在线| 欧美伊人影院| 国产在线成人| 久久不卡国产精品一区二区| 久久中文字幕av| 国产亚洲精品精品国产亚洲综合| 天堂网av成人| 国产欧美自拍一区| 极品裸体白嫩激情啪啪国产精品| 欧美日韩99| 午夜日韩福利| 国产一区二区精品久| 免费不卡在线观看| 色偷偷偷在线视频播放| 日韩高清国产一区在线| 天堂资源在线亚洲| 国产欧美在线| 免费观看久久久4p| 欧美日韩在线网站| 久久精品一本|