投票系统验证码识别技术

上传人:wm****3 文档编号:43273686 上传时间:2018-06-05 格式:DOC 页数:6 大小:61.50KB
返回 下载 相关 举报
投票系统验证码识别技术_第1页
第1页 / 共6页
投票系统验证码识别技术_第2页
第2页 / 共6页
投票系统验证码识别技术_第3页
第3页 / 共6页
投票系统验证码识别技术_第4页
第4页 / 共6页
投票系统验证码识别技术_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《投票系统验证码识别技术》由会员分享,可在线阅读,更多相关《投票系统验证码识别技术(6页珍藏版)》请在金锄头文库上搜索。

1、投票系统验证码识别技术投票系统验证码识别技术来源:华岳刷票 http:/投票软件比较有技术含量的部分就在验证码识别。为防止投票作弊,很多投票网站都会加随机验证码,输入验证码后才能投票。但是加了验证码是否就能万无一失呢,也不尽然。虽然不是所有验证码都能识别(如 QQ 的变形汉字验证码是不太可能用软件识别的,个人觉得) ,但还是有很多验证码可以用软件来识别的。下面以天涯博客里的评论验证码为例,说明验证码识别的基本思路和方法:(网页截图)第一步、获取验证码图片C#可以用 HttpWebRequest 类 GET 验证码的网址,得到返回的数据流,再将数据流值赋给 Bitmap 变量。在 Winform

2、 里放一个 PictureBox 控件,将它的 Image 属性指定为 Bitmap变量,就可以显示出验证码图片了。也可以使用 Bitmap 的 Save 方法将图片保存成 Bmp 文件。Stream resStream = response.GetResponseStream();/得到验证码数据流Bitmap sourcebm = new Bitmap(resStream);/初始化 Bitmap 图片在 Photoshop 中将验证码图片放大1600,如下:第二步、将验证码图片去色(将彩色转换为灰度)去色是为了进一步做成黑白双色图片。Color c = sourcebm.GetPixel

3、(x, y);int luma = (int)(c.R * 0.3 + c.G * 0.59 + c.B * 0.11);/转换灰度的算法sourcebm.SetPixel(x, y, Color.FromArgb(luma, luma, luma);第三步、去杂色,转换为黑白图片从灰度图片中可以看出,数字的颜色比较深,而杂色都是比较浅,所以可以设定一个临界颜色值,颜色高于或等于这个值的设置为白色,低于这个值的设置为黑色。Color c = sourcebm.GetPixel(x, y);if (c.R = critical_value)sourcebm.SetPixel(x, y, Colo

4、r.FromArgb(255, 255, 255);elsesourcebm.SetPixel(x, y, Color.FromArgb(0, 0, 0);第四步、动态得到每个数字的边界for (int x = 0; x sourcebm.Width; x+)myColumn = true;for (int y = 0; y sourcebm.Height; y+)Color c = sourcebm.GetPixel(x, y);if (c.R = 0 charStart = true;break;if (c.R = 0 break;if (myColumn = true charStart

5、 = false;charNum+;if (charStart = true charStart = false;charNum+;五、得到每个字符的特征码在每个字符的边界内,检测每个象素,如果象素为白色则为“0” ,如果象素为黑色则为“1” ,将“0” “1”连起来就是该数字或字符的特征码。Color c = sourcebm.GetPixel(x, y);if (c.R = 0)str = str + “1“;elsestr = str + “0“;六、完成验证码图片的识别将获取的特征码和对应的数字或字符保存起来,下次再将新获取的特征码跟保存的特征码对比,如果相同则提取对应的数字或字符,完成验证码的识别。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号