溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用Python的OpenCV模塊識(shí)別滑動(dòng)驗(yàn)證碼的缺口(推薦)

發(fā)布時(shí)間:2020-09-06 14:51:58 來(lái)源:腳本之家 閱讀:518 作者:Linux社區(qū) 欄目:開發(fā)技術(shù)

最近終于找到一個(gè)好的方法,使用Python的OpenCV模塊識(shí)別滑動(dòng)驗(yàn)證碼的缺口,可以將滑動(dòng)驗(yàn)證碼中的缺口識(shí)別出來(lái)了。

 使用Python的OpenCV模塊識(shí)別滑動(dòng)驗(yàn)證碼的缺口(推薦)

測(cè)試使用如下兩張圖片:

 使用Python的OpenCV模塊識(shí)別滑動(dòng)驗(yàn)證碼的缺口(推薦)

target.jpg

 使用Python的OpenCV模塊識(shí)別滑動(dòng)驗(yàn)證碼的缺口(推薦)

template.png

現(xiàn)在想要通過(guò)“template.png”在“target.jpg”中找到對(duì)應(yīng)的缺口,代碼實(shí)現(xiàn)如下:

# encoding=utf8

import cv2
import numpy as np

def show(name):
 cv2.imshow('Show', name)
 cv2.waitKey(0)
 cv2.destroyAllWindows()

def main():
 otemp = 'template.png'
 oblk = 'target.jpg'
 target = cv2.imread(otemp, 0)
 template = cv2.imread(oblk, 0)
 w, h = target.shape[::-1]
 temp = 'temp.jpg'
 targ = 'targ.jpg'
 cv2.imwrite(temp, template)
 cv2.imwrite(targ, target)
 target = cv2.imread(targ)
 target = cv2.cvtColor(target, cv2.COLOR_BGR2GRAY)
 target = abs(255 - target)
 cv2.imwrite(targ, target)
 target = cv2.imread(targ)
 template = cv2.imread(temp)
 result = cv2.matchTemplate(target, template, cv2.TM_CCOEFF_NORMED)
 x, y = np.unravel_index(result.argmax(), result.shape)
 # 展示圈出來(lái)的區(qū)域
 cv2.rectangle(template, (y, x), (y + w, x + h), (7, 249, 151), 2)
 show(template)
if __name__ == '__main__':

    main()運(yùn)行結(jié)果見本文最上面,通過(guò)運(yùn)行結(jié)果可以知道,已經(jīng)正確的找到了缺口位置。

總結(jié)

以上所述是小編給大家介紹的使用Python的OpenCV模塊識(shí)別滑動(dòng)驗(yàn)證碼的缺口,希望對(duì)大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI