GetAlpha:C#实现获取网页验证码图片,并识别出其中的字母

由于网页上的验证码图片都是通过程序产生的,因此,各个字母之间也都比较规则,进行识别其中的字符的话,也比较简单,只要将图片进行相减后,看看和那个字母的图片接近即可.

下面,我就那我们公司的外网邮箱:http://mail.lida-oe.com.cn的网页中的验证码为例子,我写了一个程序.

【网通】点击这里下载全部源程序    【电信、网通】点击这里下载源程序

【下载说明】
1、单击上面这个地址,打开下载页面。
2、点普通下载--等待30秒--点“下载”按钮--保存

整个程序的过程是这样的:

1 获取网页中的图片的地址,并下载到本地

2 对图像的像素中的A(透明度)值,来对图像进行二值化处理

3 对整个图片进行裁剪,仅裁剪出包含字符的区域

4 使用投影法对图像进行分割,从而保证每个分割区域仅包含一个字符

5 对分割出来的图片,再次进行裁剪,使得整个字符充满图片框,并大小一致

6 因此对分割出来的字符图片与图片库中的图片进行比较,相差最小的仅为字符.

我首先是搜集了多幅的验证码图片,以便能够得到所有的字符的图片. 然后,对这些搜集来的图片进行分割,从而得到包含26个字母的图片. 将这些图片作为图片库, 之后将从网页中获取的图片分割出来的字符图片,与此对比,从而得到识别结果.

截图如下:

获取网页中验证码图片之后,如上图。

将图片进行“二值化”之后的图片,如上图。

之后,对图片进行剪裁,如上图。

再使用投影法,分割出每个字符,如上图。

将分割出来的字符进行剪裁,如上图。

最终,通过与样本库的字符图片进行对比,识别出图片中的字母。

部分源程序:

主要源程序(由于做的比较急,并未对程序结构进行优化):

 /*
 * Created by SharpDevelop.
 * User: Administrator
 * Date: 2012-6-11
 * Time: 11:46
 *
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Net;
using System.Windows.Forms;
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "c"是英文字母表中的第三个字母。它的发音是/k/,在拼音中对应的是字母"c"。这个字母在英语中有很多常见的用法和含义。首先,它可以用作名词,代表一种音乐音符中的do音。例如,在音乐理论中,我们常常使用"c"来表示中央的音符。其次,"c"还可以表示温度的单位,摄氏度。例如,我们常常用摄氏度来表示温度的计量。此外,"c"也可以代表一种编程语言,C语言。C语言是一种高级的、面向过程的编程语言,广泛用于系统的开发和嵌入式设备的编程。此外,"c"还可以是一种常见的缩写,如"c/o"表示通过,"cc"表示抄送等。总的来说,"c"是一个非常常见的字母,在英语以及其他领域中都有多种用法和含义。 ### 回答2: C是计算机科学中的一门程序设计语言。它是由美国贝尔实验室的Dennis Ritchie于20世纪70年代初开发的。C是一种高级编程语言,它兼具了高级语言和低级语言的特性。 C语言的设计目标是提供一种能够方便地编写系统软件的语言。它具有简洁而规范的语法,使得编写代码更加高效且易于理解。C语言基于过程式编程范式,强调程序的步骤和逻辑,使得程序的结构更加清晰。 C语言的特点包括强大的表达能力、高效的执行速度、直接接近底层硬件、可移植性以及广泛应用的领域。C语言的语法简单,仅包含少量的关键字和语法规则,使得初学者能够较快地上手并编写可运行的程序。 C语言广泛用于系统和应用软件的开发,如操作系统、编译器、数据库、网络协议等。它也是其他编程语言的基础,许多现代编程语言的语法、结构和特性都借鉴了C语言。 C语言的学习对于计算机科学专业的学生来说非常重要,因为它能够培养良好的编程思维和解决问题的能力。通过学习C语言,学生将了解到程序的基本结构和算法设计,从而为后续的学习和开发打下坚实的基础。 总而言之,C语言是一门重要的编程语言,具有简洁高效、广泛应用的特点。它不仅可用于开发系统软件,还是培养编程思维和解决问题能力的良好工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值