OpenCV滑块验证码图像缺口位置识别

这篇具有很好参考价值的文章主要介绍了OpenCV滑块验证码图像缺口位置识别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


1、背景


在使用Selenium完成自动化爬虫时,许多网站为了防止机器人爬取数据会使用验证码(例如滑块验证码)。通过Selenium动作操作,爬虫可以模拟用户输入验证码或使用鼠标移动一定距离来处理验证码验证过程

完成这一流程的关键步骤有两步:识别出目标图像缺口的位置,操作滑块滑动到对应缺口位置

而识别目标图像缺口的位置可以通过OpenCV模块实现

OpenCV模块详解见文章:传送门

2、图像缺口位置识别原理


对于滑块验证码缺口图片(如下图):

c# opencvsharp 识别滑块缺口,# 人工智能与机器学习,# 自动化,# Python,opencv,人工智能,计算机视觉

主要步骤包括:

  • 对滑块验证码图片进行高斯模糊滤波处理,消除部分噪声干扰
  • 对滑块验证码图片应用边缘检测算法,通过调整相应阈值识别出滑块边缘
  • 对上一步得到的各个边缘轮廓信息,通过对比面积、位置、周长等特征筛选出最可能的轮廓位置,得到缺口位置

3、图像缺口位置识别实现


3.1、导入所需模块

import cv2
import urllib.request as req
import numpy as np

3.2、高斯模糊与边缘检测

高斯滤波是用来去除图像中的一些噪声的,基本效果其实就是把一张图像变得模糊化,减少一些图像噪声干扰,从而为下一步的边缘检测做好铺垫。经过高斯滤波处理后,图像会变得模糊

由于验证码目标缺口通常具有比较明显的边缘,所以借助一些边缘检测算法并通过调整阈值可以找出它的位置。经过边缘检测算法处理后,一些比较明显的边缘信息会被保留下来文章来源地址https://www.toymoban.com/news/detail-768522.html

# 读取图像文件并返回一个image数组表示的图像对象
src1 = r'C:\Users\cc\Desktop\bg.png'
image = cv2.imread(src1)
print("图像大小:", image.shape)

# GaussianBlur()方法用于图像模糊化/降噪操作
# 该方法会基于高斯函数(也称正态分布)创建一个卷积核(也称滤波器),并将该卷积核应用于图像上的每个像素点
blurred = cv2.GaussianBlur(image, (5, 5), 0)

# Canny()方法用于图像边缘检测(轮廓)
# image: 输入的单通道灰度图像
# threshold1: 第一个阈值,用于边缘链接。一般设置为较小的值
# threshold2: 第二个阈值,用于边缘链接和强边缘的筛选。一般设置为较大的值
canny = cv2.Canny(blurred, 0, 100)

cv2.imwrite('canny.png', canny)
cv2

到了这里,关于OpenCV滑块验证码图像缺口位置识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#使用OpenCv(OpenCVSharp)图像处理实例:亮度、对比度、灰度

    本文实例演示C#语言中如何使用OpenCv(OpenCVSharp)对图像进行亮度、对比度、灰度处理。 目录 亮度和对比度原理 灰度 实例 图像亮度通俗理解便是图像的明暗程度,数字图像 f(x,y) = i(x,y) r(x, y) ,如果灰度值在[0,255]之间,则 f 值越接近0亮度越低,f 值越接近255亮度越

    2024年02月13日
    浏览(68)
  • 【OpenCV+OCR】计算机视觉:识别图像验证码中指定颜色文字

    【作者主页】: 吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感兴趣的朋友可以关注《爬虫JS逆向实战》,对分布式爬虫平台感兴趣的朋友可以关注《分布式爬虫平台搭建

    2024年02月05日
    浏览(51)
  • Python如何解决“滑块验证码”登录识别(3)

    前言 本文是该专栏的第24篇,后面会持续分享python的干货知识,记得关注。 做爬虫项目的时候,总是会遇到我们的冤家老朋友——验证码(图文验证码,点选验证码,滑块验证码)等。前面我有介绍过图文验证码和点选验证码,针对验证码这块, 后面我会持续更新这些 验证码

    2023年04月08日
    浏览(35)
  • C# OpenCvSharp 图像校正

    目录 效果 代码 下载 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using OpenCvSharp.Extensions; namespace OpenCvSharp_图像校正 {     public partial class Form1 : Form     {         pu

    2024年02月15日
    浏览(36)
  • 验证码滑块识别算法 100% 识别 思路简单(附算法 python 代码)

      最开始的识别思路是通过模板来找到这个验证码的滑块图像所在的位置,但是使用下来发现准确率在90%左右一起提不上去,无论怎么优化都无法提高,后来发现了一个奇特的思路可用完美解决这个验证码的问题,思路写在了代码里面,最后返回的结果是需要移动的滑块的左

    2024年02月19日
    浏览(38)
  • selenium+opencv实现模拟登陆(滑块验证码)

    很多网站登录登陆时都要用到滑块验证码,在某些场景例如使用爬虫爬取信息时常常受到阻碍,想着用opencv的模板匹配试试能不能实现模拟登陆。本来觉得网上资料多应该还蛮容易,但实际上手还是搞了蛮久,在这里记录一下整个流程,网站无所谓主要是要有滑动验证码:

    2023年04月14日
    浏览(39)
  • OpenCv案例(十二):基于OpenCVSharp学习之模板匹配寻找距离中心位置最近的目标

    1:需求:在原图中,有多个特征点和模板图像一模一样,因此,寻找原图中中心位置最近的特征点位(模板匹配详解);原图如下所示: 模板图像:                                                                          2:现要求匹配找

    2024年01月24日
    浏览(54)
  • C#结合OpenCVSharp4图片相似度识别

    需求背景:需要计算两个图片的相似度,然后将相似的图片进行归纳 由于我是CRUD后端仔,对图像处理没什么概念。因此网上调研了几种相似度算法分析其适用场景。 直方图算法 获取要比较的2个图片的直方图数据,然后再将直方图数据归一化比较,最终得到一个相似指数,

    2024年02月09日
    浏览(48)
  • python 识别图片验证码/滑块验证码准确率极高的 ddddorc 库

    前言 验证码的种类有很多,它是常用的一种反爬手段,包括:图片验证码,滑块验证码,等一些常见的验证码场景。识别验证码的python 库有很多,用起来也并不简单,这里推荐一个简单实用的识别验证码的库 ddddocr (带带弟弟ocr)库. 环境准备 python 版本要求小于等于python3.9 版

    2024年02月03日
    浏览(39)
  • python 识别图片验证码/滑块验证码准确率极高的 ddddocr 库

    验证码的种类有很多,它是常用的一种反爬手段,包括:图片验证码,滑块验证码,等一些常见的验证码场景。 识别验证码的python 库有很多,用起来也并不简单,这里推荐一个简单实用的识别验证码的库 ddddocr (带带弟弟ocr)库. python 版本要求小于等于python3.9 版本 pip 安装 下

    2023年04月08日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包