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

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

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

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

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

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

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

一、缺口識(shí)別

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

pip install opencv-python

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

1.讀取圖片

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

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

另一個(gè)是缺口圖片:

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

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

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

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

# 識(shí)別圖片邊緣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識(shí)別滑塊驗(yàn)證碼中的缺口

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

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

3.缺口匹配

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

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

res為每個(gè)位置的匹配結(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)然,這里完全可以自己寫(xiě)一個(gè)循環(huán)來(lái)實(shí)現(xiàn),但是有現(xiàn)成的函數(shù)為什么不用呢?

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

X = max_loc[0]

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

# 繪制方框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識(shí)別滑塊驗(yàn)證碼中的缺口

完美~ 收工!!!

二、完整代碼

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

def identify_gap(bg,tp,out): ’’’ bg: 背景圖片 tp: 缺口圖片 out:輸出圖片 ’’’ # 讀取背景圖片和缺口圖片 bg_img = cv2.imread(bg) # 背景圖片 tp_img = cv2.imread(tp) # 缺口圖片 # 識(shí)別圖片邊緣 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]

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

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

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲成a人片| 免费在线观看成人| 国产精品日本一区二区不卡视频| 日韩美女精品| 日本视频在线一区| 国产三级精品三级在线观看国产| 欧美午夜三级| 亚洲97av| 欧美国产极品| 97精品国产| 激情六月综合| 久久亚洲图片| 日本在线成人| 卡一精品卡二卡三网站乱码| 黄色欧美在线| 日韩和的一区二在线| 亚洲性视频h| 免播放器亚洲一区| 青草久久视频| 98精品视频| 国产精品毛片在线| 日韩激情综合| 日韩激情中文字幕| 欧美交a欧美精品喷水| 桃色av一区二区| 亚洲精品1区2区| 日本va欧美va欧美va精品| 久久久免费人体| 91精品精品| 亚洲精品国产日韩| 日本欧美国产| 日韩在线一二三区| 精品久久在线| 在线 亚洲欧美在线综合一区| 亚洲bt欧美bt精品777| 久久成人高清| 欧美日韩国产高清| 日韩福利视频网| 午夜av不卡| 日韩精品亚洲专区在线观看| 国产精品国产一区| 三级欧美在线一区| 国产一区二区精品福利地址| 午夜亚洲福利在线老司机| 久久久久九九精品影院| 亚洲欧洲午夜| 麻豆一区二区在线| 免费日韩av片| 日韩成人免费| 97久久中文字幕| 亚洲天堂黄色| 老司机免费视频一区二区三区| 久久中文字幕二区| 国产精品二区影院| 99国产精品99久久久久久粉嫩| 久久av免费| 中文视频一区| 欧美日韩精品一区二区视频| 国产精品xvideos88| 在线视频亚洲| 国产精品成久久久久| 亚洲欧洲日韩| 欧美特黄一级大片| 红杏一区二区三区| 午夜久久av| 99精品在线观看| 久久精品国产99| 亚洲三级av| 亚洲一区二区毛片| 亚洲一级网站| 色婷婷久久久| 国产成人免费视频网站视频社区| 日本亚洲最大的色成网站www| 欧美搞黄网站| 精品国产成人| 69堂精品视频在线播放| 国产精品腿扒开做爽爽爽挤奶网站| 91欧美国产| 国产三级一区| 日韩精品乱码av一区二区| 亚洲精品网址| 久久精品官网| 精品99在线| 国产日韩高清一区二区三区在线| 亚洲专区视频| 国产精品女主播一区二区三区| 中文字幕成在线观看| 免费一区二区三区在线视频| 亚洲a成人v| 免播放器亚洲一区| 野花国产精品入口| 欧美精品黄色| 精品1区2区3区4区| 欧美日韩一二三四| 久久久夜精品| 国内激情久久| 欧美美女一区| 在线日韩中文| 99精品一区| 精品一区亚洲| 欧美日韩水蜜桃| 久久高清精品| 天堂资源在线亚洲| 亚洲特色特黄| 亚洲黑丝一区二区| 免费av一区| 影音先锋久久| 中文字幕中文字幕精品| 亚洲精品国模| 人人爱人人干婷婷丁香亚洲| 日韩高清国产一区在线| 久久国产精品免费精品3p| 中文字幕免费一区二区| 蜜臀va亚洲va欧美va天堂| 综合欧美精品| 欧美日韩99| 久久精品一区二区国产| av资源中文在线| 亚洲电影有码| 在线一区欧美| 日韩精品一级| 欧美黄页在线免费观看| 中文字幕成在线观看| 欧美亚洲国产激情| 美日韩精品视频| 国产调教精品| 超碰成人av| 一区二区三区视频免费观看| 不卡av一区二区| 蜜臀va亚洲va欧美va天堂| 欧美在线黄色| 日韩欧美精品| 视频在线观看91| 国产日本久久| 日韩另类视频| 亚洲精选91| 精品无人区麻豆乱码久久久| 欧美福利专区| 91精品国产一区二区在线观看| 高潮久久久久久久久久久久久久| 婷婷综合五月| 国产伦理一区| 樱桃视频成人在线观看| 每日更新成人在线视频| 久久gogo国模啪啪裸体| 久久久天天操| 日韩综合小视频| 黄色aa久久| 亚洲精品美女| 一本大道色婷婷在线| 亚洲欧洲专区| 日本精品不卡| 日韩精品视频在线看| 日韩欧美精品| 91麻豆精品| 欧美成人综合| 欧美激情网址| 另类国产ts人妖高潮视频| 麻豆精品视频在线观看| 亚洲综合另类| 狠狠躁少妇一区二区三区| 亚洲精品日本| 久久青草久久| 国产精品多人| 中文不卡在线| 999久久久91| 国产视频网站一区二区三区| 午夜日本精品| 日韩欧美综合| 久久不卡国产精品一区二区| 亚洲专区欧美专区| 日本美女一区| 日韩国产高清在线| 欧美女激情福利| 国产盗摄——sm在线视频| 日韩激情中文字幕| 亚洲男女av一区二区| 国模大尺度视频一区二区| 日本大胆欧美人术艺术动态| 日韩理论片av| 国语对白精品一区二区| 青草久久视频| 蜜芽一区二区三区| 九一精品国产| 日韩伦理在线一区| 久久不卡日韩美女| 97精品久久| 亚洲一二av| 久久亚洲欧洲| 九九在线精品| 欧美精品资源| 日韩精品dvd| 国产66精品| 麻豆国产精品视频| 国产欧美一区| 欧美日韩91| 国产亚洲一区二区三区啪| 亚洲精品麻豆| 亚洲欧美在线综合| 日韩一级精品|