5.1无聊花半天时间做的验证码的识别工具,对特定验证码的识别率超99%,纯分享,欢迎大家指导改进

hb1122 2014-05-07 11:11:36
加精
如题
代码粗糙,不足之处请多指点,谢谢!
如果这段代码能帮到大家,实属荣幸。
也欢迎大家指导交流。。。

本方法使用实习模式,即非智能识别,新的验证码内容需要进行学习才能进行准确识别
本流程实现原理
1、彩色转单色
2、设置颜色过滤值(0-255),滤掉浅色值
3、按列行顺序取独立的像素单元
4、对取到的值单元和字典进行匹配(因测试用码取值成功率高,只进行简单的像素点的匹配)

开发时的测试验证码样式




话不多说,直接贴码
最下方有本项目的下载链接,有兴趣的盆友可以下载研究
放不下码,转2楼贴码


CaptchTextManager.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using System.Xml.Serialization;

namespace CaptchaExtractor
{
public static class CaptchTextManager
{
/// <summary>
/// 学习,存在大小写存储问题
/// </summary>
/// <param name="value"></param>
/// <param name="Text"></param>
public static void Learn(List<Point> value, String Text)
{
if (value != null && !String.IsNullOrEmpty(Text))
{
String Dir = Application.StartupPath + @"\dic\";
String Path = Application.StartupPath + @"\dic\" + Text + ".xml";
if (!Directory.Exists(Dir))
{
Directory.CreateDirectory(Dir);
}
if (File.Exists(Path))
{
File.Delete(Path);
}
using (FileStream newfs = new FileStream(Path, FileMode.OpenOrCreate, FileAccess.Write))
{
XmlSerializer newS = new XmlSerializer(typeof ( CaptchaValue));

CaptchaValue newv = new CaptchaValue()
{
Text = Text ,
Value = value
};
newS.Serialize(newfs, newv);
}
}
}

/// <summary>
/// 取得当前所有的验证码字典
/// </summary>
/// <returns></returns>
public static List<CaptchaValue > GetAll()
{
List<CaptchaValue> res = new List<CaptchaValue>();
String Path = Application.StartupPath + @"\dic\";
if (Directory.Exists(Path))
{
String[] allFile = Directory.GetFiles(Path);
XmlSerializer newS = new XmlSerializer(typeof(CaptchaValue));
foreach (String filePath in allFile)
{
using (FileStream newfs = new FileStream(filePath , FileMode.OpenOrCreate, FileAccess.Read))
{
try
{
res.Add ((CaptchaValue ) newS.Deserialize(newfs));
}
catch (Exception ex)
{

}
}
}
}
return res;
}
}
}


CaptchaValue.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing ;

namespace CaptchaExtractor
{
/// <summary>
/// 验证码字典存储内容
/// </summary>
[Serializable ()]
public class CaptchaValue
{
/// <summary>
/// 文字
/// </summary>
public String Text{get;set;}
/// <summary>
/// 点阵
/// </summary>
public List<Point > Value{get;set;}
}
}




项目下载链接
...全文
5177 105 打赏 收藏 转发到动态 举报
写回复
用AI写文章
105 条回复
切换为时间正序
请发表友善的回复…
发表回复
悔说话的哑巴 2014-06-04
  • 打赏
  • 举报
回复
M依然 2014-06-03
  • 打赏
  • 举报
回复
LZ哥也。你不知道把项目放到网盘里面或者csdn里面。然后给链接么
kingredapple 2014-05-27
  • 打赏
  • 举报
回复
留个爪子,有空再来看看
赵4老师 2014-05-22
  • 打赏
  • 举报
回复
在“云人件”面前,任何验证码都形同虚设!
波-仔 2014-05-13
  • 打赏
  • 举报
回复
mark 学习一下
朝露昙花 2014-05-12
  • 打赏
  • 举报
回复
感谢分享,。。。。。
jiaoshiyao 2014-05-12
  • 打赏
  • 举报
回复
这验证码 太简单 用OCR组件就可以识别的吧。。。
金色蜘蛛 2014-05-12
  • 打赏
  • 举报
回复
学习了,不错的分享
save4me 2014-05-11
  • 打赏
  • 举报
回复
谢谢分享~~
Mit1208 2014-05-10
  • 打赏
  • 举报
回复
下载地址有问题啊,无法打开,迅雷也无法下载
valid25f 2014-05-10
  • 打赏
  • 举报
回复
回复一下以示鼓励
valid26 2014-05-10
  • 打赏
  • 举报
回复
学习 学习 谢谢
valid27 2014-05-10
  • 打赏
  • 举报
回复
看样子还可以
kszpig 2014-05-10
  • 打赏
  • 举报
回复
半天能写出这么多 了不起
valid29 2014-05-10
  • 打赏
  • 举报
回复
赞一个 谢谢分享
validf9 2014-05-10
  • 打赏
  • 举报
回复
验证妈不好识别啊。。。。。。。。。。。。。。。。。
零点突袭1 2014-05-09
  • 打赏
  • 举报
回复
下载链接有问题啊,大哥
dsd999 2014-05-09
  • 打赏
  • 举报
回复
不错,谢谢分享。
  • 打赏
  • 举报
回复
路过,顶!!!!!!!好像看不懂。
jrl5365 2014-05-09
  • 打赏
  • 举报
回复
mark
加载更多回复(80)
内容概要:SSD2828QN4是一款MIPI主桥接芯片,用于连接应用处理器与传统并行LCD接口及支持MIPI从属接口的LCD驱动器。该芯片支持最高每通道1Gbps的串行链路速度,最多可配置4个数据通道,显著减少了信号数量。它支持多种接口模式,包括RGB+SPI组合接口,适用于驱动智能或非智能显示面板,并能通过命令模式和视频模式传输数据。芯片内置时钟和复位模块、外部接口、协议控制单元(PCU)、包处理单元(PPU)、错误校正码/循环冗余校验(ECC/CRC)模块、长包和命令缓冲区、D-PHY控制器、模拟收发器以及内部锁相环(PLL),确保了高效的数据传输和系统稳定性。此外,文档详细描述了芯片的引脚分配、寄存器设置、操作模式、电源序列、时序特性等关键参数,为开发者提供了全面的技术指导。 适合人群:具备一定硬件设计基础,从事嵌入式系统开发、显示技术研究的研发人员。 使用场景及目标:①实现应用处理器与MIPI兼容显示屏之间的高速数据传输;②优化显示系统的功耗表现,减少电磁干扰(EMI);③通过灵活配置不同接口模式来适应各种显示设备的需求。 阅读建议:此文档面向具有一定电子工程背景的专业人士,建议读者结合实际项目需求深入理解各章节内容,特别是关于寄存器配置、时序要求等方面的具体说明。对于初次接触此类技术的开发者而言,建议先熟悉基本概念再逐步掌握高级功能的应用方法。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧