使用Python的OpenCV模块识别滑动验证码的缺口(推荐)


Posted in Python onMay 10, 2019

最近终于找到一个好的方法,使用Python的OpenCV模块识别滑动验证码的缺口,可以将滑动验证码中的缺口识别出来了。

 使用Python的OpenCV模块识别滑动验证码的缺口(推荐)

测试使用如下两张图片:

 使用Python的OpenCV模块识别滑动验证码的缺口(推荐)

target.jpg

 使用Python的OpenCV模块识别滑动验证码的缺口(推荐)

template.png

现在想要通过“template.png”在“target.jpg”中找到对应的缺口,代码实现如下:

# encoding=utf8

import cv2
import numpy as np

def show(name):
 cv2.imshow('Show', name)
 cv2.waitKey(0)
 cv2.destroyAllWindows()

def main():
 otemp = 'template.png'
 oblk = 'target.jpg'
 target = cv2.imread(otemp, 0)
 template = cv2.imread(oblk, 0)
 w, h = target.shape[::-1]
 temp = 'temp.jpg'
 targ = 'targ.jpg'
 cv2.imwrite(temp, template)
 cv2.imwrite(targ, target)
 target = cv2.imread(targ)
 target = cv2.cvtColor(target, cv2.COLOR_BGR2GRAY)
 target = abs(255 - target)
 cv2.imwrite(targ, target)
 target = cv2.imread(targ)
 template = cv2.imread(temp)
 result = cv2.matchTemplate(target, template, cv2.TM_CCOEFF_NORMED)
 x, y = np.unravel_index(result.argmax(), result.shape)
 # 展示圈出来的区域
 cv2.rectangle(template, (y, x), (y + w, x + h), (7, 249, 151), 2)
 show(template)
if __name__ == '__main__':

    main()运行结果见本文最上面,通过运行结果可以知道,已经正确的找到了缺口位置。

总结

以上所述是小编给大家介绍的使用Python的OpenCV模块识别滑动验证码的缺口,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
Python程序员鲜为人知但你应该知道的17个问题
Jun 04 Python
python smtplib模块发送SSL/TLS安全邮件实例
Apr 08 Python
python图片验证码生成代码
Jul 02 Python
Python基础之函数的定义与使用示例
Mar 23 Python
Python面向对象之类和实例用法分析
Jun 08 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
Jun 19 Python
简单了解python的一些位运算技巧
Jul 13 Python
python实现邮件发送功能
Aug 10 Python
使用Windows批处理和WMI设置Python的环境变量方法
Aug 14 Python
python无序链表删除重复项的方法
Jan 17 Python
Python类中self参数用法详解
Feb 13 Python
pandas中的ExcelWriter和ExcelFile的实现方法
Apr 24 Python
详解python中的线程与线程池
May 10 #Python
Python实现的爬取百度贴吧图片功能完整示例
May 10 #Python
Django框架文件上传与自定义图片上传路径、上传文件名操作分析
May 10 #Python
Django框架实现分页显示内容的方法详解
May 10 #Python
Django框架验证码用法实例分析
May 10 #Python
Python爬虫实现验证码登录代码实例
May 10 #Python
详解如何管理多个Python版本和虚拟环境
May 10 #Python
You might like
php 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
RR vs IO BO3 第一场2.13
2021/03/10 DOTA
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
Javascript 学习笔记 错误处理
2009/07/30 Javascript
jquery构造器的实现代码小结
2011/05/16 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
2015/08/05 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
基于JSONP原理解析(推荐)
2017/12/04 Javascript
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
js实现随机抽奖
2020/03/19 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
JavaScript实现雪花飘落效果
2020/12/27 Javascript
python实现问号表达式(?)的方法
2013/11/27 Python
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
Python 调用Java实例详解
2017/06/02 Python
Python使用ConfigParser模块操作配置文件的方法
2018/06/29 Python
Python面向对象之类的封装操作示例
2019/06/08 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
KIKO美国官网:意大利的平价彩妆品牌
2017/05/16 全球购物
介绍一下Linux文件的记录形式
2013/09/29 面试题
高中数学教师求职信
2013/10/30 职场文书
建筑设计专业求职自我评价
2014/03/02 职场文书
钢琴师观后感
2015/06/12 职场文书
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
sqlserver连接错误之SQL评估期已过的问题解决
2022/03/23 SQL Server
如何通过一篇文章了解Python中的生成器
2022/04/02 Python