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

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

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

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]
相关推荐
郭庆汝1 小时前
pytorch、torchvision与python版本对应关系
人工智能·pytorch·python
思则变4 小时前
[Pytest] [Part 2]增加 log功能
开发语言·python·pytest
漫谈网络5 小时前
WebSocket 在前后端的完整使用流程
javascript·python·websocket
try2find6 小时前
安装llama-cpp-python踩坑记
开发语言·python·llama
博观而约取7 小时前
Django ORM 1. 创建模型(Model)
数据库·python·django
精灵vector9 小时前
构建专家级SQL Agent交互
python·aigc·ai编程
Zonda要好好学习9 小时前
Python入门Day2
开发语言·python
Vertira9 小时前
pdf 合并 python实现(已解决)
前端·python·pdf
太凉9 小时前
Python之 sorted() 函数的基本语法
python
项目題供诗9 小时前
黑马python(二十四)
开发语言·python