网络爬虫工程师经常在进行网络爬虫的过程中遇到验证码,滑块拖动验正在受到越来越多的网站欢迎,本篇实验目的是使用Halcon的匹配助手构建网易滑块验证码识别算法模块。
网易滑块拼图验证码如图:
图片来源:http://dun.163.com/trial/sense
滑块平台验证码图片通过打开其网页源码查看图片下载地址
这里我通过单击图片右键另存为快速保存图片到电脑中
通过观察可以发现图片中滑块验证码是通过两张图片合成在一起构建成滑块验证码,一张为jpg格式的背景图片,另一张为png的透明图与前者背景图合并构建在网页前端合成一张。
这种验证类型爬虫工程师会经常面对处理,常规的处理手法有三种:
1.接到打码平台进行定位识别,
2.计算色差缺口来判断是否重合
3.使用深度学习的目标追踪识别训练来定位滑块
这三种方法的优缺点
- 优点是接入方便,只需要掌握POST发送图片即可。缺点是大量使用需要持续充值消费
- 优点是定位准确,能直接拿到源码修改。缺点算法复杂需要理解源码不易修改
- 优点是识别定位准确,缺点是深度学习的掌握需要消耗大量的精力无法短时掌握
本篇实验文章使用Halcon视觉识别工具包能综合以上各种方法的优缺点,做到易于学习掌握并且定位滑块位置准确。调用识别的时候能直接导出C、C++、VB.Net、C#的源码。本篇文章重点内容在于算法部分完成,制作识别组件封装调用实现在下一篇文章体现 。
Halcon开发工具包的简介:
HALCON源自学术界,它有别于市面一般的商用软件包。事实上,这是一套image processing library,由一千多个各自独立的函数,以及底层的数据管理核心构成。其中包含了各类滤波,色彩以及几何,数学转换,形态学计算分析,校正,分类辨识,形状搜寻等等基本的几何以及影像计算功能,由于这些功能大多并非针对特定工作设计的,因此只要用得到图像处理的地方,就可以用HALCON强大的计算 分析能力来完成工作。应用范围几乎没有限制,涵盖医学,遥感探测,监控,到工业上的各类自动化检测。
Halcon的安装过程:
https://blog.csdn.net/qq_29888333/article/details/84192611
Hacon 的视频简介:
http://pan.baidu.com/share/link?shareid=3266393619&uk=2369503810
安装成功后打开界面如图
第一步:读取滑块透明图
[单击] 文件->读取图像
显示滑块图片出来,[注意看一下通道数值为4]
单击->确定
在halcon的窗口显示出来表示读取成功!
第二步: 打开匹配助手-创建模板
1.助手->打开新的Matching
- 成功打开后
[单击] 模板资源下的单选框->图像窗口
[单击] 模板感兴趣区域->绘制轴平行矩形
->选出创建模板感兴趣区域
->如图蓝色是选择的区域,红色是创建成果的模板形状
到此模板已经创建成功,我们需要保存这个模板方便以后读取模板从而定位滑块
3.保存模板
[单击] 文件->保存模板
指定路径保存下来
第三步: 加载图片与模板->识别定位
模板已经创建成功,下面的步骤只需要使用Halcon的读取模板还有滑块与背景图片,相关的代码我已经写好了,大家只需要将图片与模板路径替换上去就可以正常工作识别了。
//下载地址
项目网址:https://pan.baidu.com/s/1giU8IIW0bCwlGJuMkOSZzw
* 注意事项
- disp_cross (200000, Row, Column, 18, 0) 200000为窗口句柄
粘贴源码时有可能窗口句柄是不一样的,填写与图像窗口一致即可正常工作。