校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > python3 使用OpenCV計算滑塊拼圖驗證碼缺口位置(場景示例)

python3 使用OpenCV計算滑塊拼圖驗證碼缺口位置(場景示例)

熱門標簽:西藏房產智能外呼系統要多少錢 ai電銷機器人源碼 宿遷星美防封電銷卡 ai電話機器人哪里好 地圖標注審核表 湛江智能外呼系統廠家 長沙高頻外呼系統原理是什么 百度地圖標注沒有了 外呼并發線路

前言

滑塊拼圖驗證碼的失敗難度在于每次圖片上缺口位置不一樣,需識別圖片上拼圖的缺口位置,使用python的OpenCV庫來識別到

環境準備

pip 安裝 opencv-python

pip installl opencv-python

OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺庫,提供了很多處理圖片、視頻的方法。
OpenCV庫提供了一個方法(matchTemplate()):從一張較大的圖片中搜索一張較小圖片,計算出這張大圖上各個區域和小圖相似度。
調用這個方法后返回一個二維數組(numpy庫中ndarray對象),從中就能拿到最佳匹配區域的坐標。
這種使用場景就是滑塊驗證碼上背景圖片是大圖,滑塊是小圖。

準備2張圖片

場景示例

先摳出2張圖片,分別為background.png 和 target.png

計算缺口位置

import cv2

# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/

def show(name):
    '''展示圈出來的位置'''
    cv2.imshow('Show', name)
    cv2.waitKey(0)
    cv2.destroyAllWindows()


def _tran_canny(image):
    """消除噪聲"""
    image = cv2.GaussianBlur(image, (3, 3), 0)
    return cv2.Canny(image, 50, 150)


def detect_displacement(img_slider_path, image_background_path):
    """detect displacement"""
    # # 參數0是灰度模式
    image = cv2.imread(img_slider_path, 0)
    template = cv2.imread(image_background_path, 0)

    # 尋找最佳匹配
    res = cv2.matchTemplate(_tran_canny(image), _tran_canny(template), cv2.TM_CCOEFF_NORMED)
    # 最小值,最大值,并得到最小值, 最大值的索引
    min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)

    top_left = max_loc[0]  # 橫坐標
    # 展示圈出來的區域
    x, y = max_loc  # 獲取x,y位置坐標

    w, h = image.shape[::-1]  # 寬高
    cv2.rectangle(template, (x, y), (x + w, y + h), (7, 249, 151), 2)
    show(template)
    return top_left

if __name__ == '__main__':
    top_left = detect_displacement("target.png", "background.png")
    print(top_left)

運行效果看到黑色圈出來的地方就說明找到了缺口位置

調試完成后去掉 show 的這部分代碼

# 展示圈出來的區域
  #  x, y = max_loc  # 獲取x,y位置坐標

  #  w, h = image.shape[::-1]  # 寬高
  #  cv2.rectangle(template, (x, y), (x + w, y + h), (7, 249, 151), 2)
  #  show(template)

缺口的位置只需得到橫坐標,距離左側的位置top_left為184

參考博客:
https://zhuanlan.zhihu.com/p/65309386
https://blog.csdn.net/weixin_42081389/article/details/87935735
https://blog.csdn.net/qq_30815237/article/details/86812716

ps:python opencv破解滑動驗證碼之獲取缺口位置的示例代碼

破解滑塊驗證碼的思路主要有2種:

  • 一張完整的背景圖和一張有缺口的圖片的場景,解決思路:兩張圖片同一個坐標位置進行像素上的一一對比,找出不一樣的坐標。
  • 一張有缺口的圖片和需要驗證的小圖,解決思路:1.兩張圖片進行二極化以及歸一化,確定小圖在圖片中間的坐標。這種辦法我沒有驗證通過,可以參考這里。2.通過opencv獲得缺口位置
  • 之后就要使用初中物理知識了,使用先加速后減速模仿人手動拖動
  • 通過opencv獲得圖片的缺口位置
#coding=utf-8
import cv2
import numpy as np
from PIL import Image
 
def get_element_slide_distance():
 
 otemp = 'captcha2.png'
 oblk = 'captcha1.png'
 target = cv2.imread(otemp, 0) # 讀取進行色度圖片,轉換為numpy中的數組類型數據
 template = cv2.imread(oblk, 0)
 width, height = 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 = target[target.any(1)]
 
 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) # 比較兩張圖的重疊區域
 top, left = np.unravel_index(result.argmax(), result.shape) # 獲取圖片的缺口位置
 #缺口位置
 print((left, top, left + width, top + height)) # 背景圖中的圖片缺口坐標位置
 
 #調用PIL Image 做測試
 image = Image.open("captcha1.png")
 
 rectangle = (left + 3, top + 3, left + width - 3, top + height - 3) #去掉白色塊的影響(上面去掉白色部分的功能并沒有真的起作用)
 #切割
 imagecrop = image.crop(rectangle)
 #保存切割的缺口
 imagecrop.save("new_image.jpg")
 
 return left+3
 
distance = get_element_slide_distance()
# 滑動距離誤差校正,滑動距離*圖片在網頁上顯示的縮放比-滑塊相對的初始位置
distance = distance*(280/680) - 22

拖動軌跡

def generate_tracks1(XCoordinates):
 element = browser.find_element_by_xpath("http://div[@class='secsdk-captcha-drag-icon sc-jKJlTe fsBatO']")
 ActionChains(browser).click_and_hold(on_element = element).perform()
 #
 # ActionChains(browser).move_by_offset(xoffset=0, yoffset=y - 445).perform()
 #
 # time.sleep(0.15)
 # print("第二步,拖動元素")
 distance = XCoordinates - 60
 # 初速度
 v = 0
 # 單位時間為0.2s來統計軌跡,軌跡即0.2內的位移,越低看起來越絲滑!!
 t = 0.08
 # 位移/軌跡列表,列表內的一個元素代表0.2s的位移
 tracks = []
 # 當前的位移
 current = 0
 # 到達mid值開始減速
 mid = distance * 5 / 8
 
 distance += 10  # 先滑過一點,最后再反著滑動回來
 # a = random.randint(1,3)
 while current  distance:
  if current  mid:
   # 加速度越小,單位時間的位移越小,模擬的軌跡就越多越詳細
   a = random.randint(100, 200)  # 加速運動
  else:
   a = -random.randint(2, 10)  # 減速運動
 
  # 初速度
  v0 = v
  # 0.2秒時間內的位移
  s = v0 * t + 0.5 * a * (t ** 2)
  # 當前的位置
  current += s
  # 添加到軌跡列表
  tracks.append(round(s))
 
  # 速度已經達到v,該速度作為下次的初速度
  v = v0 + a * t
  if current > distance:
   break
 
 # 反著滑動到大概準確位置
 # for i in range(4):
 #     tracks.append(-random.randint(1, 3))
 # for i in range(4):
 #    tracks.append(-random.randint(1,3))
 random.shuffle(tracks)
 count = 0
 for item in tracks:
  print(item)
  count += item
  ActionChains(browser).move_by_offset(xoffset = item, yoffset = random.randint(-2, 2)).perform()
 
 # ActionChains(browser).move_to_element_with_offset(to_element=element, xoffset=XCoordinates-18,yoffset=y - 445).perform()
 # time.sleep(2)
 # # 釋放鼠標
 print(count)
 ActionChains(browser).release(on_element = element).perform()

到此這篇關于python3 使用OpenCV計算滑塊拼圖驗證碼缺口位置的文章就介紹到這了,更多相關python滑塊拼圖驗證碼內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python中的異常類型及處理方式示例詳解
  • python實現郵箱發送信息
  • Python Pytest裝飾器@pytest.mark.parametrize詳解
  • 詳解python關于多級包之間的引用問題
  • 一些讓Python代碼簡潔的實用技巧總結
  • 利用Python讀取微信朋友圈的多種方法總結
  • python庫sklearn常用操作
  • Python使用psutil庫對系統數據進行采集監控的方法
  • python編寫adb截圖工具的實現源碼
  • Python爬蟲技術

標簽:南平 大同 漯河 林芝 海南 盤錦 寧夏 普洱

巨人網絡通訊聲明:本文標題《python3 使用OpenCV計算滑塊拼圖驗證碼缺口位置(場景示例)》,本文關鍵詞  python3,使用,OpenCV,計算,滑塊,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python3 使用OpenCV計算滑塊拼圖驗證碼缺口位置(場景示例)》相關的同類信息!
  • 本頁收集關于python3 使用OpenCV計算滑塊拼圖驗證碼缺口位置(場景示例)的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    亚洲制服欧美中文字幕中文字幕| 日韩理论在线观看| 欧美一区二区在线观看| 欧美视频你懂的| 欧美日韩国产系列| 欧美亚男人的天堂| 欧美人与性动xxxx| 日韩一区二区高清| 欧美v国产在线一区二区三区| 91精品国产91久久久久久最新毛片 | 91麻豆精品国产91久久久久久久久| 99视频在线精品| 色综合久久精品| 欧美亚洲动漫精品| 欧美亚洲免费在线一区| 色偷偷88欧美精品久久久| 欧美午夜精品理论片a级按摩| 欧美日韩不卡一区| 日韩视频免费观看高清完整版在线观看| 91精品国产综合久久香蕉的特点| 欧美一区二区二区| 国产欧美精品一区二区三区四区| 国产日本一区二区| 亚洲精品国产品国语在线app| 亚洲综合无码一区二区| 日韩精品一级中文字幕精品视频免费观看 | 亚洲国产精品自拍| 久久国产婷婷国产香蕉| 成人av午夜电影| 欧美日韩精品欧美日韩精品一| 日韩欧美你懂的| 国产精品免费免费| 日韩激情中文字幕| 成人伦理片在线| 欧美日本一道本在线视频| 精品成人一区二区| 一区二区三区四区av| 国产综合久久久久久鬼色| 色哟哟在线观看一区二区三区| 日韩欧美一区二区在线视频| 国产精品久久久久久一区二区三区| 亚洲国产欧美一区二区三区丁香婷| 麻豆精品蜜桃视频网站| 一本大道久久a久久综合婷婷| 日韩精品一区在线观看| 一区二区三区精品| 成人h动漫精品| 欧美二区乱c少妇| 亚洲天堂2014| 大美女一区二区三区| 51午夜精品国产| 亚洲女人的天堂| jlzzjlzz国产精品久久| 精品处破学生在线二十三| 日本在线不卡视频| 91久久免费观看| 中文字幕一区二区日韩精品绯色| 精品中文字幕一区二区小辣椒| 欧美日免费三级在线| 国产精品美女久久久久aⅴ| 九九**精品视频免费播放| 欧美亚日韩国产aⅴ精品中极品| 国产精品免费aⅴ片在线观看| 美女网站视频久久| 欧美一级黄色录像| 夜夜嗨av一区二区三区中文字幕 | 色综合中文字幕国产| 精品国产一区二区三区av性色| 亚洲在线免费播放| 欧美三级一区二区| 亚洲黄色小说网站| 欧美在线看片a免费观看| 亚洲视频在线观看三级| 91麻豆精品视频| 国产精品乱码人人做人人爱| 国产成人在线影院| 国产亚洲va综合人人澡精品| 国产一区二区三区日韩| 精品国产乱码久久久久久蜜臀 | 高清视频一区二区| 亚洲国产成人私人影院tom| 国产乱码精品一区二区三区av | 欧美电影在哪看比较好| 日韩中文字幕区一区有砖一区| 91精品久久久久久久99蜜桃 | 国产精品美日韩| 成人综合婷婷国产精品久久蜜臀 | 在线视频国产一区| 亚洲大片免费看| 日韩一区国产二区欧美三区| 九色综合狠狠综合久久| 欧美激情一区二区三区蜜桃视频| 成人美女在线观看| 亚洲国产日韩a在线播放性色| 在线电影院国产精品| 美腿丝袜一区二区三区| 久久伊人蜜桃av一区二区| 成人av动漫网站| 丝袜脚交一区二区| 久久夜色精品一区| 色综合天天综合色综合av| 午夜伦欧美伦电影理论片| 欧美精品一区在线观看| 99久久婷婷国产| 天堂蜜桃一区二区三区| 久久久99久久| 欧美视频一区在线| 久久se这里有精品| 亚洲免费观看高清| 日韩一级在线观看| 99麻豆久久久国产精品免费| 亚洲线精品一区二区三区| 久久久精品2019中文字幕之3| 一本色道久久综合狠狠躁的推荐| 日本中文字幕一区二区有限公司| 日本一区二区三区视频视频| 欧美日韩一区二区三区视频| 国产成人在线看| 青青草原综合久久大伊人精品 | 国产99精品视频| 日韩影院在线观看| 综合欧美亚洲日本| 精品国产一区二区精华| 欧美日韩夫妻久久| 99久久er热在这里只有精品15| 蜜桃精品视频在线观看| 亚洲午夜精品在线| 中文字幕一区三区| 国产网红主播福利一区二区| 制服丝袜成人动漫| 欧洲精品在线观看| 成人精品鲁一区一区二区| 久久国产精品99久久人人澡| 亚洲成av人影院在线观看网| 自拍偷拍亚洲激情| 中文av字幕一区| 日本一区二区综合亚洲| 欧美精品一区二区三区四区| 欧美系列在线观看| 一本色道a无线码一区v| 成人精品视频一区二区三区尤物| 久久av中文字幕片| 日本免费新一区视频| 亚洲国产精品久久人人爱蜜臀| 1024亚洲合集| 中文字幕五月欧美| 成人欧美一区二区三区白人| 国产亚洲自拍一区| 国产日韩欧美高清在线| 久久夜色精品一区| 国产情人综合久久777777| 久久久久久久久久久电影| 欧美成人精品1314www| 精品少妇一区二区三区视频免付费 | 日韩毛片精品高清免费| 中文字幕中文字幕在线一区| 亚洲欧洲av另类| 亚洲乱码中文字幕综合| 亚洲小少妇裸体bbw| 亚洲午夜久久久久久久久久久| 亚洲午夜电影网| 天天操天天干天天综合网| 日韩电影在线免费| 久久精品国产精品青草| 国模大尺度一区二区三区| 国产激情精品久久久第一区二区| 国产精品一区二区视频| 99久久精品国产精品久久| 色视频欧美一区二区三区| 欧美精品在线一区二区三区| 8x福利精品第一导航| 亚洲精品在线电影| 中文字幕视频一区| 亚洲成年人网站在线观看| 九色porny丨国产精品| 国产高清亚洲一区| 91亚洲精品一区二区乱码| 欧美色精品在线视频| 精品国产一区二区在线观看| 中文字幕一区不卡| 日韩福利电影在线| 成人性色生活片免费看爆迷你毛片| 色成年激情久久综合| 日韩三级视频中文字幕| 中国色在线观看另类| 午夜精品久久久久久久蜜桃app| 久久精品国产亚洲a| 99久久精品国产观看| 日韩欧美123| 亚洲精品视频在线观看网站| 奇米精品一区二区三区在线观看 | 亚洲人吸女人奶水| 免费成人av在线播放| 不卡av免费在线观看| 日韩久久免费av| 中文字幕佐山爱一区二区免费| 日本成人在线电影网| 色香蕉成人二区免费| 久久精品视频一区二区| 五月激情六月综合|