注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为
如有侵犯,请联系作者下架
该文章模型已经上线ocr识别网站,欢迎测试!!,地址:https://yxlocr.windy-rain.cn/ocr/other/10
该验证码成品展示效果如下:
本文依然采用opencv去计算内圈和外圈的角度,和以往的旋转验证码不同,该验证码在拖动内圈的同时,外圈也会反方向旋转,该验证码在图像处理的技术上,更加追求你对opencv的掌握,以往只需要简单处理缺口边缘计算梯度与外圈验证码做计算即可,该验证码需要你对图像优化技术上有较深的掌握,才能达到很高的准确率,但由于tiktok图像数据集数量之多,加上再怎么好的算法也无法适配到所有的数据集,所以准确率依然在97左右,下面我们来看具体处理步骤,首先来看下数据集
外圈数据集:
内圈数据集:
1、优化缺口图片
从内圈缺口图片的展示来看,该数据集一个好处是大小固定,这样我们截取内圈时就非常的方便,这一步还是采用切割內图+放大內图的方式去优化
经过优化后,内圈图如下,基本上和原内圈图没什么区别,很好的保留了图像特征
2、内外圈结合
内外圈结合,就是将内圈和外圈图片叠加在一起,叠加在一起通常为两种方式,内圈在外圈上层或者外圈在内圈上层,两种方式根据不同的场景去处理,并且还要调整外圈和内圈结合在一起的掩膜像素处理,这里必须是像素级处理,1个像素的处理没有优化好,后面的优化简直就是满盘皆输,使用如下代码,进行外圈和内圈依次旋转并结合
最后结合效果如下:
可以看到,我的内圈和外圈基本上还是和原图没什么变化,只是角度不同
3、计算正确角度和总结
这里计算角度也还是和以往一样,计算梯度,但是这里的梯度也必须优化好,每一步优化都是为了最后的准确率,这里防止代码滥用,就不贴出来了,只要计算出差异最小值就是最终角度,经过还原后,正确角度图如下:
总结,这里的旋转验证码和以往不同,需要你对每一步的图像处理上掌握的比较熟悉,会使用各种图像处理方法正确处理好外圈图和内圈图的关系,并且在关键阈值上都要进行像素级的优化处理,最后才能得到比较高的准确率。