首页 > 其他分享 >滑块验证码,滑块和有缺口的背景

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

时间:2024-12-13 14:28:20浏览次数:10  
标签:tar sub img top 验证码 缺口 TM 滑块 cv

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

突破滑动验证码有缺口的背景内容
在这里插入图片描述

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]

标签:tar,sub,img,top,验证码,缺口,TM,滑块,cv
From: https://blog.csdn.net/weixin_45014634/article/details/144448788

相关文章

  • 多段区间的时间滑块slider实现方式
    多段区间的时间滑块slider实现方式写在前面:今天要实现一个尖峰平谷的数据配置,这可一下难倒我了,但是还好互联网上大神云集,感谢各位大神的倾情分享,现在就写下我的感悟,留给看到这篇文章的你参考链接--写在前面,希望好帖子和文章能够被更好的被发现首先就是查看功能的大神贴,也是......
  • 用python程序写一个爬虫小案例,使用场景输入手机号 获取验证码
    为了演示如何编写一个简单的爬虫来模拟“输入手机号并获取验证码”的场景,我们需要以下几个步骤:1.**分析目标网站**:首先,你需要找到一个可以通过手机号获取验证码的网站,并分析其网络请求。通常,验证码请求是通过`HTTPPOST`请求发送的,并带有手机号参数。2.**使用Python发......
  • 如何在易优EyouCms中管理验证码设置?
    在使用易优EyouCms时,验证码设置是确保网站安全的重要环节。验证码可以有效防止自动化脚本的恶意攻击,但有时为了简化用户操作,您可能需要调整或关闭某些验证码。以下是管理验证码设置的详细步骤:进入后台管理:打开浏览器,输入您的易优EyouCms后台管理地址,例如 https://yourdomain......
  • 短信验证码burp姿势
    首先声明,本文仅仅作为学习使用,因个人原因导致的后果,皆有个人承担,本人没有任何责任。在之前的burp学习中,我们学习了图片验证码的突破,但是现实中还有很多短信验证码,在此我介绍几种短信验证码漏洞,全部可以使用burp实现(本人因期末考试季,图片大多来源于网络,在有时间自己挖漏洞补上),......
  • Captcha生成验证码并验证输入正误_HTML5 Canvas 实现(完整代码)
    在浏览器端实现生成验证码并验证输入正误,使用HTML5Canvas来实现。以下是一个简单的浏览器端验证码实现示例:```html<!DOCTYPEhtml><html><head>  <title>BrowserCaptcha</title>  <style>    .captcha-container{      displa......
  • 使用 Vala 编写验证码识别程序
    环境准备首先,我们需要确保系统中安装了Vala和OpenCV。Vala的安装可以通过以下命令来完成:安装Valabashsudoaptinstallvala安装OpenCVOpenCV用于图像处理,确保已经安装了相关依赖项。bashsudoapt-getinstalllibopencv-dev2.创建验证码识别项目我们将使用一......
  • 使用 Vyper 编写验证码识别程序
    准备工作首先,我们需要收集并下载验证码图片,并保存到本地。为了便于后续处理,我们会对这些图片计算MD5值并进行保存。这个步骤不仅有助于后期验证数据的完整性,也确保了每次处理的数据是一致的。由于验证码图片的复杂性相对较低,目标检测不需要大量的图片数据,大约200到400张图像即......
  • 使用 Hutool 在 Java 中生成验证码
    文章目录详细步骤1.安装JDK和IDE2.创建Maven项目3.添加Hutool依赖4.编写验证码生成代码5.运行代码6.查看结果详细步骤1.安装JDK和IDE安装JDK访问OracleJDK或OpenJDK网站下载适合你操作系统的JDK版本。按照安装向导完成安装,并配置环境......
  • 某滑块验证码识别思路(附完整代码)
    思路验证码类型如下:大概搜索了下,有两种主流思路:yolo目标检测算法和opencv模版匹配。很明显第二种成本远小于第一种,也不需要训练。而且这种验证码有干扰(两个目标点),yolo一次还不能直接到位,还得进一步处理。我在搜索的时候还有用轮廓匹配做识别的,但是实测下来准确率很低,这里就......
  • PbootCMS如何取消留言、自定义表单的验证码?
    在PbootCMS中,验证码可以增加系统的安全性,但在某些情况下,你可能希望取消留言表单和自定义表单中的验证码,以简化用户操作。以下是如何在PbootCMS中取消这些验证码的详细步骤和注意事项。登录PbootCMS后台:打开浏览器,访问你的PbootCMS后台登录页面(通常是 你的域名/admin)。输入......