验证码识别程序

摘自:http://0527.yo2.cn/articles/identify.html

最近手痒痒,装上了 .NET 就用VC2005+AutoHotKey 写了一个识别验证码的程序,序只以动网的验证码图片作为样本进行处理和识别,验证码样本如下,也就是说只能对这种类型的验证码进行识别。 打开下载页面

这回把图像处理的算法部分用VC控制台实现,这样只用专注算法部分。而后续的界面和收尾工作则是由AHK完成。再也不用考虑恶心的MFC了。首先,由AHK打开图片,以参数的形式传递给VC编写的控制台程序。然后由控制台程序对验证码图片进行处理,得到验证码的特征值,直接输出到控制台窗口,最后由AHK对窗口里的文字进行捕捉,这样就得到了验证码的特征值,和样本数据特征进行比较,最终得到验证码。我觉得这种方式很有意思,把原来类和类之间的封装工作改为程序和程序之间的封装。

验证码处理及识别的步骤:

  1. 对图片进行贴标签运算,以白色为背景色,得到包括干扰色块在内的目标数个。
  2. 去除标签面积小的目标物,这时剩下的是验证码和与验证码粘连在一起的干扰色块。
  3. 这时图片只剩下4个含有干扰色的验证码,由于验证码都为纯色,结合原始图片,保留每个目标中出现特定像素值次数最多的点,这时就只剩下干净的验证码了。
  4. 最后,对剩下的目标进行统计,分别统计每个目标的面积,顶点出现的次数等特征数据。
  5. 识别之前需要对每个有可能出现的字符进行特征的统计,学习过程是将统计出的特征值写入样本数据,识别过程为与样本数据进行比对。

     

程序下载 identifycode.rar

原文地址:https://www.cnblogs.com/phoenixzq/p/2245137.html