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

本文介绍了一种使用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;
usin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值