欢迎访问!
您的支持是我们不断前行的动力!

C# 滑块验证码缺口坐标通用识别算法

本文为纯算法计算滑块验证码缺口坐标,适用于绝大多数滑块验证码缺口坐标的计算。

思路:

如果滑块验证码有三张图,即原图、缺口图、块图,则直接逐点比较原图和缺口图的不同即可,最开始的TX滑块验证码便是如此,index=0 为原图,index=1为缺口图,可采用逐点比较的方式来计算缺口坐标。

此处介绍一种通用的计算方法,解决无原图的情况下计算缺口坐标,以及部分用户的图来源于截图的时候也能计算出缺口坐标。

截图与非截图的区别:(截图的时候左边多了一个块图)

 

 

 

 

 

块图宽度计算:并非整个图片的宽度,而是内部有像素点的宽度,以TX滑块为例,块宽度为89

 

 

 

 

 

 

 

/// <summary>
/// 获取两个像素点颜色的差异
/// </summary>
/// <param name="c1"></param>
/// <param name="c2"></param>
/// <returns></returns>
public double GetDifferentValue(Color c1, Color c2)
{
    double y1 = 0.299 * c1.R + 0.587 * c1.G + 0.114 * c1.B;
    double u1 = -0.14713 * c1.R - 0.28886 * c1.G + 0.436 * c1.B;
    double v1 = 0.615 * c1.R - 0.51498 * c1.G - 0.10001 * c1.B;
    double y2 = 0.299 * c2.R + 0.587 * c2.G + 0.114 * c2.B;
    double u2 = -0.14713 * c2.R - 0.28886 * c2.G + 0.436 * c2.B;
    double v2 = 0.615 * c2.R - 0.51498 * c2.G - 0.10001 * c2.B;
    double d = System.Math.Sqrt((y1 - y2) * (y1 - y2) + (u1 - u2) * (u1 - u2) + (v1 - v2) * (v1 - v2));
    return d;
}

示例:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

此资源下载价格为30知识币,请先
提示:网络资源非实物交易,购买后无法退款,请考虑好后再购买!如有疑问,请联系管理员!在此,感谢您的支持!
赞(7) 打赏
转载请注明出处,未注明出处不得转载,蜘蛛侠 » C# 滑块验证码缺口坐标通用识别算法
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

蜘蛛侠,您身边的爬虫专家!

觉得文章有用就打赏一下文章作者吧

支付宝扫一扫打赏

微信扫一扫打赏