滑块验证码,滑块和有缺口的背景

滑块验证码,滑块和有缺口的背景

突破滑动验证码有缺口的背景内容

python 复制代码
import cv2 as cv
import numpy as np
import os
 
def find_p(img):
    ret, thresh = cv.threshold(img, 127, 255, 0)
    img = cv.cvtColor(img, cv.COLOR_GRAY2BGR)
    contours, hierarchy = cv.findContours(thresh, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)
    # print(len(contours))
    cnt = contours[0]
    x, y, w, h = cv.boundingRect(cnt)
    img = cv.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
    # cv.imshow('7', img)
 
    return x, y, w, h, thresh[y: y + h, x: x + w]
 
def tmp_match(img, tar):
    w, h = tar.shape[0:-1]
    # methods = ['cv.TM_CCOEFF', 'cv.TM_CCOEFF_NORMED', 'cv.TM_CCORR',
    #            'cv.TM_CCORR_NORMED', 'cv.TM_SQDIFF', 'cv.TM_SQDIFF_NORMED']
    method = cv.TM_CCOEFF_NORMED
    # Apply template Matching
    res = cv.matchTemplate(img, tar, method)
    min_val, max_val, min_loc, max_loc = cv.minMaxLoc(res)
    # If the method is TM_SQDIFF or TM_SQDIFF_NORMED, take minimum
    top_left = max_loc
    bottom_right = (top_left[0] + w, top_left[1] + h)
    cv.rectangle(img, top_left, bottom_right, 255, 2)
    # cv.imshow('5', img)
    return top_left
 
def sub_img_op(pth, pth1):
    img = cv.imread(pth, -1)
    img_tar = cv.imread(pth1)
    sub_img = img[:, :, 3]
 
    img_o = cv.cvtColor(img, cv.COLOR_BGRA2BGR)
 
    # sub_img = cv.cvtColor(sub_img, cv.GRAY2BGR)
    # print(sub_img[50:70, :])
 
    x, y, w, h, mask = find_p(sub_img)
 
    white_img = np.ones([h, w, 3], dtype='uint8') * 255
 
    # print(x, y, w, h)
 
    img_tar_sub = img_tar[y: y + h, :, :]
    img_o_sub = img_o[y: y + h, x: x + w, :]
 
    res_img = cv.addWeighted(img_o_sub, 0.7, white_img, 0.3, 0)
    # res_img = img_o_sub
 
    top_left = tmp_match(img_tar_sub, res_img)
 
    print(top_left[0])
 
    # cv.imshow('1', img_o)
    cv.imshow('2', img_tar_sub)
    cv.imshow('3', res_img)
 
    cv.waitKey()
    cv.destroyAllWindows()
 
    return top_left[0]
相关推荐
Java知识技术分享10 分钟前
使用LangChain构建第一个ReAct Agent
python·react.js·ai·语言模型·langchain
奔跑吧邓邓子20 分钟前
【Python爬虫(44)】分布式爬虫:筑牢安全防线,守护数据之旅
开发语言·分布式·爬虫·python·安全
程序员 小濠1 小时前
接口测试基础 --- 什么是接口测试及其测试流程?
自动化测试·python·测试工具·职场和发展·appium·接口测试·压力测试
程序媛徐师姐1 小时前
Python基于Django的酒店推荐系统【附源码】
python·django·酒店·酒店推荐·python django·酒店推荐系统·python酒店推荐系统
~kiss~1 小时前
python的thrift2pyi学习
windows·python·学习
奔跑吧邓邓子1 小时前
【Python爬虫(45)】Python爬虫新境界:分布式与大数据框架的融合之旅
开发语言·分布式·爬虫·python·大数据框架
Luke Ewin2 小时前
根据音频中的不同讲述人声音进行分离音频 | 基于ai的说话人声音分离项目
人工智能·python·音视频·语音识别·声纹识别·asr·3d-speaker
大米洗澡2 小时前
数字签名技术基础
python·学习·程序人生·面试·职场和发展
神一样的老师2 小时前
ChromeDriver版本不匹配问题的解决
python
起个破名想半天了2 小时前
Web自动化中Selenium下Chrome与Edge的Webdriver常用Options参数
python·selenium·自动化