滑块验证码之图片距离计算

news2024/9/29 11:41:26

滑块验证码之图片距离计算

1.使用工具

  • vscode
  • python3.8

2.安装opencv-python

python -m pip install opencv-python -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

查看安装的版本:

C:\Users\wenhz>pip list|findstr opencv
opencv-python             4.8.1.78

3.图片识别

3.1 准备的图片

在这里插入图片描述
在这里插入图片描述
注意:项目目录不要包含中文,图片命名的路径也不要包含中文路径,可能会出现意想不到的错误

3.2 图片识别函数

  • matchTemplate(原图片,要识别的图片,识别模式):相关系数匹配函数,在一张图中寻找另一张图最相似的地方,最后返回一个相似矩阵
  • Canny(图片矩阵,长度,高度):图像的边缘检测,即图像局部亮度变化显著的部分。如平滑到连续的过度。通常用于特征提取和特征,通常就是物体去除各种干扰,保留下的基本纹理特征。如下图:
    在这里插入图片描述- minMaxLoc(矩阵):用于求一个矩阵的最大值,最小值,以及对应值的索引。如:
    import numpy as np
    import cv2
    a=np.array([[1,2,3,4],[5,67,8,9]])
    min_val,max_val,min_indx,max_indx=cv2.minMaxLoc(a)
    
    print(min_val,max_val,min_indx,max_indx)
    
    out:
    
    1.0 67.0 (0, 0) (1, 1)
    

3.3 距离计算完整代码

def cal_loc(filePath_bg,filePath_qk):
    '''
    bg: 背景图片
    qk: 缺口图片
    '''
    # 读取背景图片和缺口图片
    bg_img = cv2.imread(filePath_bg) # 背景图片
    qk_img = cv2.imread(filePath_qk) # 缺口图片
    
    # 识别图片边缘
    bg_edge = cv2.Canny(bg_img, 100, 200)
    qk_edge = cv2.Canny(qk_img, 100, 200)
    
    # 转换图片格式
    bg_pic = cv2.cvtColor(bg_edge, cv2.COLOR_GRAY2RGB)
    qk_pic = cv2.cvtColor(qk_edge, cv2.COLOR_GRAY2RGB)
    
    # 缺口匹配
    res = cv2.matchTemplate(bg_pic, qk_pic, cv2.TM_CCOEFF_NORMED)
    min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res) # 寻找最优匹配
    # 返回缺口的X坐标
    return max_loc[0] 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1262056.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SRM供应商询价招投标管理系统

前言: 在当今高度信息化的时代,企业运营的效率和透明度对于企业的生存和发展至关重要。供应商管理系统(SRM)作为企业采购管理的重要工具,旨在提升企业与供应商之间的协作效率,优化采购流程,降低…

MySOL常见四种连接查询

1、内联接 &#xff08;典型的联接运算&#xff0c;使用像 或 <> 之类的比较运算符&#xff09;。包括相等联接和自然联接。 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如&#xff0c;检索 students和courses表中学生标识号相同的所有行。 2、…

U-Net及其变体在医学图像分割中的应用研究综述

U-Net及其变体在医学图像分割中的应用研究综述 论文来自&#xff1a;中国生物医学工程学报 2022 摘 要&#xff1a; 医学图像分割可以为临床诊疗和病理学研究提供可靠的依据&#xff0c;并能辅助医生对病人的病情做出准确的判断。 基于深度学习的分割网络的出现解决了传统自动分…

每日一练2023.11.28———【PTA】

题目链接&#xff1a; L1-009 N个数求和 题目要求&#xff1a; 本题的要求很简单&#xff0c;就是求N个数字的和。麻烦的是&#xff0c;这些数字是以有理数分子/分母的形式给出的&#xff0c;你输出的和也必须是有理数的形式。 输入格式&#xff1a; 输入第一行给出一个正整…

SpringBoot+Redis编写一个抢红包雨的案例。附源码。

案例演示 SpringBootRedis编写一个抢红包雨的案例。附源码 1、案例分析&#xff0c;整体方案介绍 预备上线一个红包雨活动。这个红包雨的思路是活动开始前25分钟&#xff0c;在后台创建活动。然后前端用户进入&#xff0c;到点后将设置的金额拆分成多个小红包&#xff0c;开启倒…

C++之STL库:string类(用法列举和总结)

前言 大家在学习STL库的时候一定要学会看英文文档&#xff0c;俗话说熟能生巧&#xff0c;所以还得多练&#xff01; 在使用string类之前&#xff0c;要包含头文件#include <string>和using namespace std; 文档链接&#xff1a;string - C Reference 一、string——构造…

【API 自动化测试】Eolink Apikit 图形用例详解

Eolink Apikit 的图形用例是指通过图形化的方式去表现 API 流程测试。它包括了条件选择器、单个 API 步骤和操作集等组件。 相较于前面推荐的表格化的通用用例&#xff0c;图形用例可以让测试人员更方便地设计和管理 API 流程测试&#xff0c;同时也更加的灵活。 添加图形用例…

第29期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大型语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以…

【密码学引论】序列密码

第五章 序列密码 1、序列密码 定义&#xff1a; 加密过程&#xff1a;把明文与密钥序列进行异或运算得到密文解密过程&#xff1a;把密文与密钥序列进行异或运算得到明文以字/字节为单位加解密密钥&#xff1a;采用一个比特流发生器随机产生二进制比特流 2、序列密码和分组密…

前馈式神经网络与反馈式神经网络的区别,联系,各自的应用范围和场景!!!

文章目录 前言一、前馈式神经网络是什么&#xff1f;二、前馈式神经网络包括&#xff1a;三、反馈式神经网络是什么&#xff1f;四、反馈式神经网络包括&#xff1a;总结 前言 前馈式神经网络和反馈式神经网络是两种主要的神经网络架构&#xff0c;它们在网络结构和应用场景上…

OpenCV快速入门【完结】:总目录——初窥计算机视觉

文章目录 前言目录1. OpenCV快速入门&#xff1a;初探2. OpenCV快速入门&#xff1a;像素操作和图像变换3. OpenCV快速入门&#xff1a;绘制图形、图像金字塔和感兴趣区域4. OpenCV快速入门&#xff1a;图像滤波与边缘检测5. OpenCV快速入门&#xff1a;图像形态学操作6. OpenC…

深度学习18

卷积层 查看每个数据 使用tensorboard查看 池化层 使用数据集进行训练 创建实例&#xff0c;使用tensorboard进行显示 最大池化保留了图片信息&#xff0c;神经网络训练的数据量大大减小&#xff0c;可以加快训练 非线性激活 非线性激活为神经网络加入了一些非线性的特质…

ChinaSoft 展商风采 | 蚂蚁集团:CodeFuse-Query代码大数据分析平台

2023年CCF中国软件大会&#xff08;CCF ChinaSoft 2023&#xff09;由CCF主办&#xff0c;CCF系统软件专委会、形式化方法专委会、软件工程专委会以及复旦大学联合承办&#xff0c;将于2023年12月1-3日在上海国际会议中心举行。 本次大会主题是“智能化软件创新推动数字经济与社…

Java---类的继承

文章目录 1. 理解继承2. 继承概述3. 代码块理解4. 继承的好处与弊端5. 继承中变量的访问特点6. super关键字7. 继承中构造方法访问特点8. 继承中成员方法访问特点9. 方法重写10. 方法重写注意事项11. Java继承注意事项 1. 理解继承 2. 继承概述 1. 继承是面向对象的三大特征之一…

ILSVRC2012数据集处理

ILSVRC2012数据集处理 解压图像处理标签和图像 解压图像 先解压 tar -xvf ILSVRC2012_img_train.tar 解压之后其实还是1000个tar压缩包&#xff08;对应1000个类别&#xff09;&#xff0c;需要再次解压&#xff0c;解压脚本unzip.sh如下&#xff08;PS&#xff1a;可能需要自…

银行合规知识竞赛要怎么策划才高大上

合规是银行业务永恒的主题&#xff0c;也是银行发展的根本保障。加强合规知识的学习和理解是保障银行业务健康发展的基础。通过竞赛形式的开展&#xff0c;旨在增强员工对风险和合规的敏感度和关注度&#xff0c;推动全行合规水平全面提升。那么如何策划一场高水平的银行合规知…

开发环境配置整理大全——Visual Studio 最新安装篇

Visual Studio是微软的集成开发环境&#xff08;IDE&#xff09;&#xff0c;以Windows为主的平台开发的一套功能全面而强大的IDE&#xff0c;支持C#、F#、VB、C/C、HTML等36 种语言的开发。开发人员常使用的开发工具之一&#xff0c;Visual Studio今年4月出了最新版本的2022款…

Ubuntu系统CLion安装

Ubuntu系统CLion安装 pycharm 同理。 参考官网安装过程&#xff1a;官网安装过程 下载linux tar.gz包 # 解压 sudo tar -xzvf CLion-*.tar.gz -C /opt/ sh /opt/clion-*/bin/clion.sh其中第二个命令是启动CLion命令 clion安装完以后&#xff0c;不会在桌面或者菜单栏建立图…

数学公式KaTex识别神器,LaTex-OCR

使用KaTex格式来书写数学公式是个痛苦的事情&#xff0c;有时候看到某个数学公式想记录下来&#xff0c;为了省事不得不截图&#xff0c;但这很不专业&#xff0c;今天发现一个可以智能识别公式的程序&#xff0c;它使用机器学习模型来识别图像&#xff0c;并转化成KaTex代码&a…

vmware虚拟机怎么安装linux-rocky操作系统

vmware虚拟机安装linux-rocky操作系统 rocky下载地址&#xff1a;https://rockylinux.org/zh_CN/download/ 我下载boot版本&#xff0c;安装时候需要联网。 接下来一路下一步&#xff0c;硬盘这里可以选择“将虚拟磁盘存储为单个文件”&#xff0c;然后一直点击到完成就可以。…