手写数字识别的流程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
手写数字识别的流程:
1.对所给出的图像进行预处理使得方面后面的数字识别操作,包括图像的二值化等2.对图像进行图像的形态学操作,让数字变得闭合,方便进行数学形态学的计算3.用鼠标提取每个数字的图像,并对每个数字图像作出包含连通区域的矩阵
4.根据数字的欧拉数和每个数字的其他不同特征识别数字
5.最后把识别的数字保存起来
下面分别进行论述:
1.数字图像的二值化
原图如下:
二值化处理结果如下:
2.图像的形态学操作,让数字中未闭合的数字6、8、9闭合
处理后的图像如下:
3.用鼠标提取每个数字的图像,并对每个数字图像作出包含连通区域的矩阵
在提取图像时要注意,尽量用最小的矩形包括这个数字,并且不要遗漏数字的任何部分在外面,这一步对后面的识别至关重要,会非常影响数字的识别。提取出来二值图像后,并把它变换成一个数字矩阵,这个矩阵会对图像中不同的连通区域作出不同的标记,这样方便下面进行数字矩阵的特征提取。
4.根据数字的欧拉数和每个数字的其他不同特征识别数字
a.识别数字8,只有8的欧拉数为2
b.识别数字1,其离心率最大(>0.9),并且它的最小外包矩形的长度大于宽度的两倍
c.对数字6,其欧拉数为1,用一条水平扫描线从上半部分进行扫描,有两个交点
d.对数字4,其欧拉数为1,用距离右边框几个象素的垂直线与它相交,有两个象素,即可识别
e.对数字0,其欧拉数为1,用一条水平扫描线从中间与它相交,有两个交点,用一条垂直扫描线从中间与它相交,也有两个交点,即可识别
f.对数字9,其欧拉数为1,用一条水平扫描线从下半部分进行扫描,有两个交点,与6相反
g.对数字2,其欧拉数为0,用距上边框十几个象素的水平线与它相交,有4个交点
h.对3,用距中间位置的垂直线与它相交,有3个交点,且欧拉数为0
i.对数字7,其欧拉数为0,从中间位置垂直扫描,有两个交点
j.剩下的就是数字5了
试验结果分析:
总共进行了五组的试验,试验结果如下:
b =1234567895
b =1534567890
b =5534567855
b =1535557895
b =1555565895
从以上的试验结果可以看出:
如果用鼠标提取图像时,仔细小心的提取,会取得不错的试验效果,但是对于数字2和数字0,往往会有一定的误差。
后三组试验,在提取数字时有意的将数字区域扩大或者缩小,可以看出这样对试验结果的影响很大,会造成很大的误差,这种识别方法的识别率大大降低。