以前写了篇 联通充值卡自动充值的实现,最近发现联通官网改版了,随便看了下发现新版的验证码和以前的不同,发了点时间研究了下他的识别码,它现在的验证码如下
现在将识别步骤说下
1,转换灰度图片
2,清除2px的边框
3,分割验证码个数 (4)
4,生成字模库
经过以上步骤,可以得到下面这个效果
下面为部分实现代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
public String GetCheckString(Bitmap bitmap) {
UnCodebase ud = new UnCodebase(bitmap);
ud.GrayByPixels();
ud.ClearPicBorder(2);
ud.CutMap(14, 15, 0, 0);
bitmap = ud.bmpobj;
String chkcode = "" ;
Bitmap[] arrmap = ud.SplitImg(bitmap, 4, 1);
foreach (Bitmap item in arrmap) {
String str = ud.GetCodebybitmap(item, 128);
Boolean isEques = false ;
foreach (String strss in code) {
String[] a = strss.Split( ':' );
if (str == a[1]) {
chkcode += a[0];
isEques = true ;
break ;
}
}
if (!isEques) {
String strCurrent = "" ;
double max = 0.0;
foreach (String strss in code) {
int len1, len2, min, count = 0;
String[] a = strss.Split( ':' );
len1 = a[1].Length;
len2 = str.Length;
min = len1;
if (min > len2) {
min = len2;
}
for ( int i = 0; i < min; i++) {
if (str[i] == a[1][i]) {
count++;
}
}
double currrent = (count * 100.0 / min);
if (max < currrent) {
max = currrent;
strCurrent = a[0].Trim();
}
}
chkcode += strCurrent.Trim();
}
}
return chkcode;
}
|
通过这些处理后,识别成功率在90+%以上,
下面附上测试地址,代码 100%C#实现,方便asp.net调用,如果是C/C++实现 asp.net 调非托管的有些麻烦,非得放到System32 或是一个绝对路径下麻烦
测试地址
http://www.fox163.com/UniconTest.aspx
--幸福海
博客地址:http://www.cnblogs.com/ningqhai/
分享到:
相关推荐
以前写了篇 联通充值卡自动充值的实现,近发现联通官网改版了,随便看了下发现新版的验证码和以前的不同,发了点时间研究了下他的识别码,它现在的验证码如下 现在将识别步骤说下 1,转换灰度图片 2,...
本篇将深入探讨C#实现图片验证码识别的相关知识点。 一、验证码的原理与类型 验证码(CAPTCHA)全称“Completely Automated Public Turing test to tell Computers and Humans Apart”,即全自动区分计算机和人类的...
c#识别验证码c#识别验证码c#识别验证码c#识别验证码c#识别验证码c#识别验证码c#识别验证码c#识别验证码
在本项目中,我们关注的是使用C#编程语言实现的OCR(Optical Character Recognition,光学字符识别)技术来识别验证码。C#是一种广泛应用于Windows平台的面向对象的编程语言,它拥有丰富的类库和强大的.NET ...
C#实现验证码识别、发票标号识别、图片识别.zip
【使用C#的AForge类库识别验证码实例】 在本文中,我们将探讨如何利用C#的AForge类库来识别验证码。AForge类库是一个功能强大的框架,它为开发者和研究者提供了丰富的工具,涵盖了计算机视觉、人工智能、图像处理、...
本项目"用C#实现验证码识别"是基于Visual Studio 2005开发的,下面将详细介绍这个领域的相关知识点。 1. **C#语言基础**: C#是一种面向对象的编程语言,由微软公司推出,主要用于.NET框架。在VS2005环境下,C#...
总结起来,C#验证码识别涉及到图像处理、特征工程和机器学习等多个领域的知识。通过预处理优化图像,分割字符,提取特征,最后使用匹配算法进行识别。随着深度学习的发展,现代验证码识别系统往往依赖于预训练的深度...
验证码识别技术是网络安全领域中的一个重要组成部分,主要用于防止自动化的...通过深入理解和学习该项目,开发者不仅可以掌握验证码识别的实现技术,还能提升在C#/.NET平台上进行图像处理和机器学习应用开发的能力。
最近做一个小玩意需要识别验证码,之前从来没有接触过识别验证码这块,这可难倒了我。所以,在网上搜索如何识别验证码,许多前辈写的博文教会了我。怕以后又忘记了,故此写篇随笔记录。 我要识别的验证码是一种非常...
本资源“C#图片验证码字母或数字通用识别代码.rar”提供了一种C#编程语言实现的解决方案,能够帮助开发者识别各种图片验证码,从而自动化某些需要验证码验证的流程。 验证码识别技术通常涉及到图像处理和机器学习。...
在本案例中,我们关注的是一个使用C#编程语言实现的验证码识别源码。C#是一种面向对象的、类型安全的、现代的编程语言,广泛应用于Windows桌面应用、游戏开发、Web服务以及.NET框架的各种项目。 验证码识别通常包括...
在C#编程环境中,验证码识别是一项常见的任务,特别是在自动化测试、网页爬虫或者安全验证的场景下。这个项目是基于VS2005或VS2008开发的,适用于WinForms应用程序,能够实现基本的验证码识别功能。下面将详细探讨C#...
在本文中,我们将探讨C#语言实现验证码识别的基础方法,并基于给出的源码进行学习交流。 验证码(CAPTCHA)全称为“Completely Automated Public Turing test to tell Computers and Humans Apart”,即全自动区分...
本文将深入探讨C#实现的OCR(Optical Character Recognition,光学字符识别)验证码识别技术,以及如何利用该技术提高数字验证码的识别率至100%。 验证码的主要目标是区分人类用户与计算机程序,通常表现为一组模糊...
验证码自动识别技术是一种在计算机视觉领域中用于防止恶意自动化程序的重要手段,而C#作为.NET框架下的编程语言,提供了丰富的库和工具来实现这一功能。本项目“c#源码自动识别验证码.rar”是一个基于Winform的应用...
C#作为.NET框架下的主要编程语言,提供了丰富的库和工具来实现验证码识别程序。本项目名为"C# 验证码识别程序",旨在帮助开发者理解和实践验证码识别的原理与方法。 验证码的主要目的是防止恶意自动化的机器人或...
在本场景中,我们要讨论的是如何使用C#语言进行OCR验证码识别。 首先,要实现OCR验证码识别,你需要了解以下几个关键知识点: 1. **图像处理**:在识别验证码前,通常需要对图像进行预处理,包括灰度化、二值化、...
只要你有一定的c#编程基础,只要半天时间仔细阅读这份代码,你就可以从完全不懂验证码识别的菜鸟变成一个能破解一些傻瓜验证码的高手。 希望尊重他人劳动成果,不要上传此代码到别的地方。谢谢!