首页 > 其他分享 >滑动验证码-获取滑动长度

滑动验证码-获取滑动长度

时间:2023-07-08 23:34:44浏览次数:43  
标签:匹配 阈值 max cv2 验证码 value st 长度 滑动

滑动验证码-获取滑动长度

image-20220809225558059

思路:

  • 为了更快精准的找出滑动的距离,因此可以给图片做适当的处理

    • 灰度化。所谓灰度,就是图像没有色彩。举个例子,原本的彩色图片是有RGB三种颜色组成的(也就是每个像素点由三个值),现在给图像灰度化,每个像素点只有一个值(0-255)表示颜色的深度
  • 为了方便测试,可以考虑使用python的实时图像框架调试

安装

pip install opencv-python==4.6.0.66
pip install streamlit==1.11.1

运行streamlit代码

streamlit run file_path

image-20220809173749549

翻译

如果您是我们的开发合作伙伴之一,或者您有兴趣获得

个人技术支持或Streamlit更新,请输入您的电子邮件

地址如下。否则,您可以将该字段留空。

图片比对相似

cv2.matchTemplate(big, small, cv2.TM_CCORR_NORMED)

  • 方差匹配方法(TM_SQDIFF):匹配度越高,值越接近于0

  • 归一化方差匹配方法(TM_SQDIFF_NORMED):完全匹配结果为0

  • 相关性匹配方法(TM_CCORR):完全匹配会得到很大值,不匹配会得到一个很小值或0

  • 归一化的互相关匹配方法(TM_CCORR_NORMED):完全匹配会得到1, 完全不匹配会得到0

  • 相关系数匹配方法(TM_CCOEFF):完全匹配会得到一个很大值,完全不匹配会得到0,完全负相关会得到很大的负数

    • 此处与书籍以及大部分分享的资料所认为不同,研究公式发现,只有归一化的相关系数才会有[-1,1]的值域
  • 归一化的相关系数匹配方法( TM_CCOEFF_NORMED):完全匹配会得到1,完全负相关匹配会得到-1,完全不匹配会得到0

  • # pip install opencv-python
    # pip install streamlit
    import cv2
    import streamlit as st
    
    
    def get_long():
      # 导入图片
      img1 = cv2.imread('./imgs/cpt1.png')
      img2 = cv2.imread('./imgs/cpt2.png')
    
    
      # 建立2个 st 控制的变量
      min_value = st.slider('input min value',max_value=500)
      max_value = st.slider('input max value',max_value=1000)
      # 边缘化图片
      # Canny使用的滞后阈值,低阈值,高阈值
      # canny1 = cv2.Canny(img1,min_value,max_value)
      '''
       1. Canny 使用了滞后阈值,滞后阈值需要两个阈值(高阈值和低阈值)。
       2. 如果某一像素位置的幅值超过 高 阈值, 该像素被保留为边缘像素。
       3. 如果某一像素位置的幅值小于 低 阈值, 该像素被排除。
       4. 如果某一像素位置的幅值在两个阈值之间,该像素仅仅在连接到一个高于 高 阈值的像素时被保留。
       '''
      canny1 = cv2.Canny(img1,min_value,max_value)
      # 保存图片
      cv2.imwrite('./imgs/tcpt1.png',canny1)
    
    
      # 使用 streamlit 输出结果
      st.write(canny1)
      st.image(canny1)
    
    
      canny2 = cv2.Canny(img2,min_value,min_value)
      cv2.imwrite('./imgs/tcpt2.png',canny2)
    
    
      st.image(canny2)
    
    
      # 加载边缘化后的图片
      big = cv2.imread('./imgs/tcpt1.png')
      small = cv2.imread('./imgs/tcpt2.png')
      # 对比图片
      rs = cv2.matchTemplate(big, small, cv2.TM_CCORR_NORMED)
      # 通过制定的方法来查询相应的结果
      min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(rs)
      # st.write(rs)
      # st.write(min_val, max_val, min_loc, max_loc)
      # st.write(big.shape)
      return max_loc[0]/big.shape[1]*340
      
    
    
      # 画图个框来验证,匹配的结果是否正确
      # tw,th = small.shape[:2]
      # timg = cv2.rectangle(big, max_loc, (max_loc[0]+tw,max_loc[1]+th), (255,255,0))
      # st.image(timg)
     
    if __name__ == '__main__':
      get_long()

     

标签:匹配,阈值,max,cv2,验证码,value,st,长度,滑动
From: https://www.cnblogs.com/jiangjiayun/p/17538085.html

相关文章

  • 滑动验证码-保存图片
    滑动验证码-保存图片https://www.sf-express.com/we/ow/chn/sc/waybill/list#保存图片fromselenium.webdriver.chrome.serviceimportServicefromseleniumimportwebdriverfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.common.by......
  • 长度最小的子数组滑动窗口
    /***给定一个含有n个正整数的数组和一个正整数s,找出该数组中满足其和≥s的长度最小的连续子数组,并返回其长度。如果不存在符合条件的子数组,返回0。**长度最小的子数组*示例:**输入:s=7,nums=[2,3,1,2,4,3]输出:2解释:子数......
  • Unity UGUI的Slider(滑动条)件组的介绍及使用
    UnityUGUI的Slider(滑动条)件组的介绍及使用1.什么是Slider组件?Slider(滑动条)是UnityUGUI中的一种常用UI组件用,于在用户界面中实现滑动选择的功能。通过拖动滑块,用户可以选择一个数值范围的内值。2.Slider组件的工作原理Slider组件由两部分组成:滑动区域和滑块。滑动区域用于显......
  • 移除数组中的元素返回新数组的长度,双指针实现
    /***给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度。**不要使用额外的数组空间,你必须仅使用O(1)额外空间并原地修改输入数组。**元素的顺序可以改变。你不需要考虑数组中超出新长度后面的......
  • 如何实现MySQL text类型默认长度是多少的具体操作步骤
    MySQLtext类型默认长度是多少在MySQL数据库中,text类型是用来存储大段文本数据的一种数据类型。在创建表时,我们可以使用text类型来定义一个列,以便存储长文本、大段文字或者其他类型的文本数据。但是,你可能会问,text类型的默认长度是多少呢?text类型介绍在MySQL中,text类型是一种可......
  • 【验证码逆向专栏】某度滑块、点选、旋转验证码 v1、v2 逆向分析
    声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作......
  • 如何让3D力导向图中具有不同属性的子节点连接长度不同?
    引用3D力导向图是一种可视化数据结构的方法,它可以帮助我们更好地理解和分析数据。在3D力导向图中,节点之间的连接长度通常是相等的,但是在某些情况下,我们可能希望连接长度不同,以便更好地展示节点之间的关系。本文将介绍如何在3D力导向图中实现具有不同属性的子节点连接长度不同。示......
  • 超级鹰识别验证码
    超级鹰识别验证码http://www.chaojiying.com/思路:获取图片内容提交给打码平台获取验证码提交并验证数据提示只要平台支持,基本都可以使用。比如,识别英文,数字,汉字,做题等fromchaojiying_Python.chaojiyingimportChaojiying_Clientdefpic_str(image,pic_type=19......
  • 验证码-手动输入
    验证码-手动输入思路:获取验证码输入验证码提交并验证数据提示可以输入任意非行为验证码,比如:识别英文,数字,汉字,做题等fromemailimportheaderimportrequestsfromfake_useragentimportUserAgent#获取一个可以保存session的请求对象session=requests.Sessi......
  • 滑动窗口
    1.关于常用方法的介绍,在一个区间内寻找最大值或者最小值。题目链接:154.滑动窗口-AcWing题库举例,在一个长度为s数组中,窗口的大小为k,窗口从最左侧开始进行移动,输出窗口中最大和最小的两个元素。2.思考,在窗口的移动过程中,不断有旧的元素消失,新的元素进来,即先进先出,符合队列的......