分享文章到朋友圈
海报分享
导读
本文主要介绍如何使用Python+OpenCV实现滑块验证码->自动拖动验证。
前几天在某网站下载代码时,跳转到滑块验证码界面,需要验证OK后才能下载,貌似这种验证方式现在很流行,所以打算用OpenCV尝试如何让其自动拖动验证。
核心步骤是提取滑动块目标位置,如下是效果展示:
实现步骤:
【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被覆盖后剩余像素数量,当剩余像素数量最小时认为被覆盖完全,松开鼠标。
本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
最近1~2年电商行业飞速发展,各种创业公司犹如雨后春笋大量涌现,商家通过各种活动形式的补贴来获取用户、培养用户的消费习惯。但任何一件事情都具有两面性,高额的补贴...
本文选择了 AI 的这个视点,全文刊登了腾讯安全平台部总经理 coolc 关于“AI技术在信息安全领域的应用” 的现场演讲发言。
这篇文章主要分享腾讯自己是如何通过大数据、用户画像、建模来防止被刷、恶意撞库的。
一、HTML5新增属性 1.1、contextmenu contextmenu的作用是指定右键菜单。 <!DOCTYPE html> <h...
Awesome系列的JavaScript资源整理。awesome-javascript是sorrycc发起维护的 JS 资源列表,内容包括:包管理器、加载器、测...
关键字:Python,SVM,字符验证码,机器学习,验证码识别 1 概述 基于Python使用SVM识别简单的验证字符串的完整代码开源分享。 因为目前有了更...
基于python的互联网软件测试开发(自动化测试)-全集合 1 关键字