验证码如何识别的?

拿到一张验证码图片(bmp),如何用c++去得到里面的数字字母?给一个大概流程也行。

阅读 6.7k
6 个回答

以前做过车牌识别,验证码识别应该是类似的,一般分为四步:

  1. 预处理:将验证码图片灰度化二值化

  2. 字符切割:二值化后的图片进行字符切割

  3. 特征提取:提取每个字符的特征,生成特征向量或者特征矩阵

  4. 字符识别:比较样本库和切割后字符的特征向量或者矩阵,使用识别算法识别

《Visual C++数字图像模式识别技术详解》 买这本书看吧

先把图片读进来,就是个矩阵,然后对这个矩阵二值化,然后对这个矩阵运算,具体算法忘了,每个值对应着不同的数字字母,写个switch就可以。

OCR是一条路

另一条路是接入付费打码平台,平台会对接真人打码,你只需要把验证码图片发给平台即可(一般如果打错了还可以上报错误)

这种平台有很多,我就不贴详细地址了,一搜就有

二值化道路。
看看铁道部的神兽级别的验证码,有些心累。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题