当前位置:   article > 正文

Delphi+OpenCV自动识别小红书页面滑块验证之实现原理_delphi opencv

delphi opencv

直奔主题,小红书滑块验证页面如下:

通过页面分析得到滑块两张图片bg.jpgfg.png

可以看到bg的位置是固定不变的,fg到目标缺口位置Y值也是不变的,但X值是变化的,怎样得到X

首先要识别出缺口的位置,因为我们只识别缺口,不用考虑色彩,所以最先想到的是将彩色图片转为灰度图片,降低识别的复杂度:

这里我们采用了OpenCVcvLoadImageGrayImage.Clone,对图片进行灰度处理。

变灰后排除了色彩干扰,但两个图片的差异还是巨大,为了识别图形轮廓,必须继续将进行图片二值化处理,进一步降低明暗度的干扰。并且由于fg到目标缺口的Y值不变,为了排除相似缺口的干扰,按照fg的图片高度对bg进行了裁剪,裁剪后的bg更清晰了:

这里我们采用cvCanny函数,对图片进行二值化处理。
最后,调用cvMatchTemplate进行图像轮廓对比,并使用cvMinMaxLoc获取匹配度最高的一组坐标值,即可获取到X

有了X值,我们就知道从fg的位置移动多少距离可以到达正确的缺口位置,于是经过多次测试,通过模拟鼠标的点击和拖拽操作,将fg滑块正确地移动到bg对应的缺口中,即可完成滑块的自动拖拽。

总结用到的技术:
1、Delphi调用Chrome内置浏览器,获取图片;
2、Delphi调用OpenCV图像处理和模板匹配,获取X值;
3、Delphi对鼠标光标控制,模拟人工操作

程序全部源码已上传:https://download.csdn.net/download/CashBell/19715727,欢迎交流指导。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/580885
推荐阅读
相关标签
  

闽ICP备14008679号