先给出要处理的验证码地址(地址后面为随机数字,便于生成不同的验证码)
http://vote.sun0769.com/include/ ... 1025&rid=866359
(图标应该为bmp的,因为论坛限制,给存为jpg格式上传了)
看到此验证码,开始想到的步骤就是二值化、去干扰线,分割字符,在做样品对比
但在用画图打开多个验证码图片后有新的想法
(放大到800%,开启网格线,因论坛图片限制,左右两侧空白有剪切掉,实际上就是看到每个单元格就是一个像素点)
观察图像后发现,只有0~9共10个数字,且无变形无偏斜,在多个验证码中都保持大小一致,验证码中字体颜色和干扰线颜色一致,且和背景色对比鲜明
如果把10个数字裁剪下来,然后将每个数字对应字符点阵和验证码图象中字符点阵匹配像素进行对比,可按百分比或完全一致来判断每个数字在验证码中是否存在及存在的坐标点位置,这样可无视干扰线存在
以下是代码
http://vote.sun0769.com/include/ ... 1025&rid=866359
![](https://i-blog.csdnimg.cn/blog_migrate/71d60f3e7cd7acad5c705a1a7c4edcbe.jpeg)
(图标应该为bmp的,因为论坛限制,给存为jpg格式上传了)
看到此验证码,开始想到的步骤就是二值化、去干扰线,分割字符,在做样品对比
但在用画图打开多个验证码图片后有新的想法
(放大到800%,开启网格线,因论坛图片限制,左右两侧空白有剪切掉,实际上就是看到每个单元格就是一个像素点)
![](https://i-blog.csdnimg.cn/blog_migrate/e326f3c2d05e98a3b03af8048ad3e84b.jpeg)
观察图像后发现,只有0~9共10个数字,且无变形无偏斜,在多个验证码中都保持大小一致,验证码中字体颜色和干扰线颜色一致,且和背景色对比鲜明
如果把10个数字裁剪下来,然后将每个数字对应字符点阵和验证码图象中字符点阵匹配像素进行对比,可按百分比或完全一致来判断每个数字在验证码中是否存在及存在的坐标点位置,这样可无视干扰线存在
![](https://i-blog.csdnimg.cn/blog_migrate/c0a38b1582b0d22571670854266e0b2e.jpeg)
以下是代码