手写数字识别的实现.doc
,燕山大学课 程 设 计 说 明 书题目: 手写数字识别的实现 学院(系): 年级专业: 学 号: 学生姓名: 指导教师: 教师职称: 2012年 6 月 29 日 燕山大学课程设计(论文)任务书院(系):电气工程学院 基层教学单位:自动化仪表系 学 号学生姓名专业(班级)09自动化仪表2班设计题目手写数字识别实现设计技术参数 通过由数字构成的图像,自动实现几个不同数字的识别,设计识别方 法,有较高的识别率设计要求设计图像中不同数字的识别方法,可以先从两个数字的识别开始,尽量实现多个不同数字的识别。设计中应该有自己的思想、设计体会工作量1分析图像特征,查阅相关资料,根据图像的特征提出解决问题的思路。2查阅相关资料,学会MATLAB的编程方法3根据解决思路,编辑程序,根据调试结果,修改相应思路,找出最佳解决方案工作计划周一 分析图像,查阅各种资料,提出可行的解决方案。周二 熟悉MATLAB软件,学会软件的简单编程方法。周三 根据可行的方法,编写程序,调试并修改方案。周四 根据调试结果,选取最佳方案并完成设计论文。周五 进一步完善设计论文,准备论文答辩。参考资料1、 数字图像处理,电子工业出版社,贾永红,2003;2、 数字图像处理(Matlab版),电子工业出版社,冈萨雷斯,2006;3、 数字图像处理,电子工业出版社,R.C.Gonzales阮秋崎等,2002;4、 人工智能原理,人民邮电出版社,王文杰等,2003。指导教师签字基层教学单位主任签字2012年 6 月 29 日 燕山大学课程设计评审意见表指导教师评语:成绩: 指导教师: 年 月 日答辩小组评语: 成绩: 评阅人: 年 月 日课程设计总成绩:答辩小组成员签字:赵彦涛、吴飞、林洪斌、程淑红2012年 6 月 29 日,数字图像中手写数字识别的实现 摘要:数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用 计算机对其进行处理的过程。图像中手写阿拉伯数字的识别和其他模式的识别所采用的方法是多种多样的。本文论述了图像中手写阿拉伯数字的识别过程,并对手写数字识别的三种方法(基于规则的方法、基于统计的方法和基于神经网络的方法)进行了简要介绍和分析,并通过实例重点对基于规则的方法进行了描述。最后是对这些方法的简要评价。关键字:二值化 欧拉数 矩阵 matlab 目录一、手写数字图像识别简介.3二、正文:手写数字图像识别的主要流程.3第一步. .3第二步.4第三步.4第四步.4三、程序.4四、总结体会.7五、参考文献.,8(如有不懂加QQ453543115)一、手写数字图像识别简介手写阿拉伯数字识别是图像内容识别中较为简单的一个应用领域,原因有被识别的模式数较少(只有0到9,10个阿拉伯数字)、阿拉伯数字笔画少并且简单等。手写阿拉伯数字的识别采用的方法相对于人脸识别、汉字识别等应用领域来说可以采用更为灵活的方法,例如基于规则的方法、基于有限状态自动机的方法、基于统计的方法和基于神经网络的方法等。本文的开始部分先对手写阿拉伯数字识别的整个处理流程进行论述,而这个流程也可以用于图像中其他模式的识别。当然这个处理流程也不是唯一的,可以根据不同的模式识别应用场景进行与之不同的预处理流程。二、正文:手写数字图像识别的主要流程在本文中,对图像进行设计中,对图像进行了以下四步处理。第一步:对源图像进行黑白二值化处理,如图1。第二步:对图像进行分块,将各个区域内的0值数目统计出来;第三步:对各个样本进行统计,确定同一数值各个区域的0值数量范围;区域1区域2区域3区域40(551,611)(623,717)(363,574)(296,715)1(81,510)(318,510)(0,332)02(303,614)(674,739)(22,355)(398,450)3(363,676)(40,432)(377,505)(487,969)4(426,1423)(0,777)(178,505)(0,692)5(566,668)(339,606)(260,440)(348,533)6(314,771)(617,873)(0,314)(0,495)7(278,333)(0,376)(514,689)(31,490)8(477,747)(743,1008)(318,559)(487,721)9(619,1341)(0,492)(0,803)(0,516)第四步:编写相关程序,并测试. 三、程序clcclearclose alli1=imread(d:数字93.bmp);m,n=size(i1);sum1=0;sum2=0;sum3=0;sum4=0;for i=1:1:128 for j=1:1:128if i1(i,j)=0 sum1=sum1+1;endend endfor i=129:1:255 for j=1:1:128if i1(i,j)=0 sum2=sum2+1;endend endfor i=1:1:128 for j=129:1:255if i1(i,j)=0 sum3=sum3+1;endend endfor i=129:1:255 for j=129:1:255if i1(i,j)=0 sum4=sum4+1;endend end if(sum1>550&&sum1<611&&sum2>476&&sum2<718&&sum3>362&&sum3<573&&sum4>295&&sum4<716) w=0, break else if(sum1>80&&sum1<511&&sum2>317&&sum2<511&&sum3>=0&&sum3<333&&sum4>=0&&sum4<=0) w=1, break else if(sum1>302&&sum1<615&&sum2>673&&sum2<839&&sum3>21&&sum3<356&&sum4>397&&sum4<451) w=2, break else if(sum1>362&&sum1<677&&sum2>39&&sum2<433&&sum3>376&&sum3<506&&sum4>486&&sum4<970) w=3, break else if(sum1>565&&sum1<669&&sum2>338&&sum2<607&&sum3>259&&sum3<441&&sum4>347&&sum4<534) w=5, break else if(sum1>313&&sum1<772&&sum2>616&&sum2<874&&sum3>=0&&sum3<315&&sum4>=0&&sum4<496) w=6, break else if(sum1>277&&sum1<334&&sum2>=0&&sum2<377&&sum3>513&&sum3<690&&sum4>30&&sum4<491) w=7, break else if(sum1>476&&sum1<748&&sum2>742&&sum2<1009&&sum3>317&&sum3<560&&sum4>486&&sum4<722) w=8, break else if(sum1>618&&sum1<1342&&sum2>=0&&sum2<493&&sum3>=0&&sum3<804&&sum4>=0&&sum4<517) w=9, break else if(sum1>425&&sum1<1424&&sum2>=7&&sum2<778&&sum3>177&&sum3<506&&sum4>=0&&sum4<693) w=4, break end end end end end end end end end end四、总结体会使用这种方法进行对手写数字的判定仍然存在着很大的局限性。在遇到手写字体书写位置较偏、字体过大时,通过本程序被正确识别的机率就会大大降低。常见的改进方案有:加入一个投影程序,将图片中的数字区域取出来;以该数字区域为中心,按一定规格大小进行补点;然后再按照以上程序,进行分区统计。还可以通过不断扩大样本范围的方法等。通过上面的分析,我们可以看出,基于规则的方法,相对较为简单,比如手写阿拉伯数字识别等识别对象较少的情况,有比较少的时间复杂度和比较高的识别正确率,这种方法的关键在于规则的定义对模式是否有较高的区分度。样本库的规模越大,样本的分布越接近于实际情况,数字识别的正确率越高。这次的课程设计,虽然只是研究手写数字的识别,我们一个组的人相互相互讨论,交换意见和建议,并且包括了基础知识的积累、理论的成型、MATLAB语言编写和程序的使用、理论过程的MATLAB程序实现,和期间程序的不断编写和调试,可以说让我们对于MATLAB的数字图像处理整个过程都有了一个很完整和客观的认识。在课设中我学习到了团队的作用,只有不断的学习,不断的去思考,不断的去寻求答案,不断的去实践,你才会真的掌握一种技术。在这里要感谢赵老师这几天的悉心指导,感谢这几天和我一起完成课设的同学们,你们给了我很大的帮助,我将会铭记这次宝贵的经验和这几天所有得到的快乐。五、参考文献1、 数字图像处理,电子工业出版社,贾永红,2003;2、 数字图像处理(Matlab版),电子工业出版社,冈萨雷斯,2006;3、 数字图像处理,电子工业出版社,R.C.Gonzales阮秋崎等,2002;4、 人工智能原理,人民邮电出版社,王文杰等,2003。