实战 | 手把手教你用Python+OpenCV实现滑块验证码->自动拖动验证

本文详细介绍了如何利用Python和OpenCV库,通过图像处理技术实现滑块验证码的自动检测和拖动验证。首先进行颜色通道转换和二值化处理,然后进行形态学操作提取滑动块位置。接着,通过模板匹配确定滑动起点和目标位置,最后控制鼠标进行拖动直至验证完成。文中还展示了不同测试图片的效果,并提供了两种验证完成的判断方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导读

本文主要介绍如何使用Python+OpenCV实现滑块验证码->自动拖动验证。

背景介绍

前几天在某网站下载代码时,跳转到滑块验证码界面,需要验证OK后才能下载,貌似这种验证方式现在很流行,所以打算用OpenCV尝试如何让其自动拖动验证。

效果展示

核心步骤是提取滑动块目标位置,如下是效果展示:

OpenCV实现滑块验证码检测定位--自动验证_哔哩哔哩_bilibili-https://www.bilibili.com/video/BV1f44y1b7WK/

目标滑动块定位步骤与演示:

实现步骤:

【1】截取验证图片,颜色通道转换为HSV,取V通道分析

原图:

图片

V通道效果:

图片

B,G,R=cv2.split(img)hsv_img=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)H,S,V=cv2.split(hsv_img)
ret1, thres= cv2.threshold(V, 200, 255, cv2.THRESH_BINARY_INV)cv2.imshow('thres', thres)

【2】二值化 + 形态学处理

二值化效果:

图片

开运算+闭运算效果:

图片

k1=np.ones((5,5), np.uint8)thres = cv2.morphologyEx(thres, cv2.MORPH_OPEN, k1)#闭运算cv2.imshow('MORPH_OPEN', thres)
k2=np.ones((5,5), np.uint8)thres = cv2.morphologyEx(thres, cv2.MORPH_CLOSE, k2)#闭运算cv2.imshow('MORPH_CLOSE', thres)

【3】轮廓提取 + 宽高/面积比筛选

图片

其他图片测试效果(稳定性验证):

图片

图片

图片

图片

图片

自动验证完整步骤

实现步骤:

【1】通过模板匹配定位箭头位置,作为鼠标滑动起点;

图片

【2】定位模板滑动块位置;

【3】控制鼠标拖动,直到与目标滑动块完全重合;

这里提供两种思路:

① 笔者发现这个网站的起始滑动块x位置都是10,那么可以计算目标滑动块与起始滑动块X坐标差值,控制鼠标移动对应的像素量;

图片

② 截取目标滑动块的ROI位置,实时计算ROI被覆盖后剩余像素数量,当剩余像素数量最小时认为被覆盖完全,松开鼠标。

图片

图片

图片

欢迎加入OpenCV与AI深度学习官方微信群一起学习交流:

更多视觉图像处理相关内容,请点击关注:OpenCV与AI深度学习。

在Excel中,如何实现每隔500行拆分成一个表格呢?可以通过以下步骤来完成: 1. 打开要操作的Excel文件。 2. 选择要进行拆分的工作表。 3. 在工作表中的第501行(即第一个需要拆分的表格的下一行)插入一个新行,可以使用鼠标右键或者菜单栏中的"插入"按钮,选择"整行"。 4. 在第501行的A列(或者任意你希望在每个表格起始位置的列)中输入一个标识符,用来标识每个拆分出来的表格的起始位置,比如"表格1"。 5. 在第502行的A列中输入第二个表格的标识符,比如"表格2"。依此类推,每隔500行输入一个新的标识符。 6. 找到Excel工具栏中的"数据"选项卡(通常位于顶部菜单栏中),点击该选项卡下的"筛选"按钮。 7. 在弹出的筛选窗口中选择"高级筛选"。 8. 在"高级筛选"对话框中,选择"复制到其他位置"选项。 9. 在"列表区域"中输入整个数据范围,例如,选择从A1单元格开始的所有数据范围,直至最后一行。 10. 在"条件区域"中输入包含标识符的列范围,例如A1到A500(或者你选择的标识符所在列)。 11. 在"复制到"区域中输入将要复制到的目标位置,例如输入一个空白的工作表起始的单元格,比如B1。 12. 点击对话框中的"确定"按钮,Excel会自动将每个表格拆分到指定的目标位置。 13. 最后,你可以根据需要重复进行以上步骤,以实现更多的拆分操作。 通过以上步骤,你可以轻松地将Excel表格按照每隔500行拆分为不同的表格。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Color Space

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值