python五行程式碼解決滑塊驗證的缺口距離識別,破解滑塊驗證
目前網上關於滑塊的缺口識別的方法很多,但是都不極簡,看起來繁雜,各種演算法的都有,有遍歷的有二分法的,今天寫個最簡單,準確率最高的。
直接看程式碼:
defFindPic(target, template):
“”“
找出影象中最佳匹配位置
:param target: 目標即背景圖
:param template: 模板即需要找到的圖
:return: 返回最佳匹配及其最差匹配和對應的座標
”“”
target_rgb = cv2。imread(target)
target_gray = cv2。cvtColor(target_rgb, cv2。COLOR_BGR2GRAY)
template_rgb = cv2。imread(template, 0)
res = cv2。matchTemplate(target_gray, template_rgb, cv2。TM_CCOEFF_NORMED)
value = cv2。minMaxLoc(res)
使用cv2庫,先讀取背景圖,然後夜視化處理(消除噪點),然後讀取模板圖片,使用cv2自帶圖片識別找到模板在背景圖中的位置,使用minMaxLoc提取出最佳匹配的最大值和最小值,返回一個數組形如(-0。3, 0。95, (121,54),(45, 543))元組四個元素,分別是最小匹配機率、最大匹配機率,最小匹配機率對應座標,最大匹配機率對應座標。
我們需要的是最大匹配機率座標,對應的分別是x和y座標,但是這個不一定,有些時候可能是最小匹配機率座標,最好是根據機率的絕對值大小來比較。
滑塊驗證較為核心的兩步,第一步是找出缺口距離,第二步是生成軌跡並滑動,較為複雜的情況下還要考慮初始模板圖片在背景圖中的座標,以及模板圖片透明邊緣的寬度,這些都是影響軌跡的因素。
————————————————
ID:Python之戰
|作|者|公(zhong)號:python之戰
專注Python,專注於網路爬蟲、RPA的學習-踐行-總結
喜歡研究技術瓶頸並分享,歡迎圍觀,共同學習。
獨學而無友,則孤陋而寡聞!