三、基于SVM算法实现手写数字识别
作为一个工科生,而非数学专业的学生,我们研究一个算法,是要将它用于实际领域的。下面给出基于OpenCV3.0的SVM算法手写数字识别程序源码(参考http://blog.csdn.net/firefight/article/details/6452188)程序略有改动。
本部分将基于OpenCV实现简单的数字识别,待识别图像如下图所示,通过以下几个步骤实现图像中的数字的自动识别。
1.使用OpenCV训练手写数字识别分类器;
2.图像预处理及图像分割;
3.应用分类器进行识别。
3.1使用OpenCV训练手写数字识别分类器
所谓学习分类器就是根据训练样本,选取模型训练产生数字分类器,这里采用上文提到的SVM算法。
训练集使用MNIST,这个MNIST数据库是一个手写数字的数据库,它提供了六万的训练集和一万的测试集。它的图片是被规范处理过的,是一张被放在中间部位的28px*28px的灰度图。总共包含4个文件,每一个文件头部几个字节都记录着这些图片的信息,然后才是储存的图片信息,关于文件信息的具体描述可以参考下面这个网站: