燕山大学课程设计说明书题目:手写数字识别的实现学院(系):年级专业:学号:学生姓名:指导教师:教师职称: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)第四步:编写相关程序,并测试.三、程序clcclearclose alli1=imread('d:\数字\93.bmp');[m,n]=size(i1);sum1=0;sum2=0;sum3=0;sum4=0;for i=1:1:128for j=1:1:128if i1(i,j)==0sum1=sum1+1;endendendfor i=129:1:255for j=1:1:128if i1(i,j)==0sum2=sum2+1;endendendfor i=1:1:128for j=129:1:255if i1(i,j)==0sum3=sum3+1;endendendfor i=129:1:255for j=129:1:255if i1(i,j)==0sum4=sum4+1;endendendif(sum1>550&&sum1<611&&sum2>476&&sum2<718&&sum3>362&&sum3<573&&su m4>295&&sum4<716)w=0,breakelseif(sum1>80&&sum1<511&&sum2>317&&sum2<511&&sum3>=0&&sum3<333&&sum 4>=0&&sum4<=0)w=1,breakelseif(sum1>302&&sum1<615&&sum2>673&&sum2<839&&sum3>21&&sum3<356&&sum 4>397&&sum4<451)w=2,breakelseif(sum1>362&&sum1<677&&sum2>39&&sum2<433&&sum3>376&&sum3<506&&sum 4>486&&sum4<970)w=3,breakelseif(sum1>565&&sum1<669&&sum2>338&&sum2<607&&sum3>259&&sum3<441&&su m4>347&&sum4<534)w=5,breakelseif(sum1>313&&sum1<772&&sum2>616&&sum2<874&&sum3>=0&&sum3<315&&sum4>=0&&sum4<496)w=6,breakelseif(sum1>277&&sum1<334&&sum2>=0&&sum2<377&&sum3>513&&sum3<690&&su m4>30&&sum4<491)w=7,breakelseif(sum1>476&&sum1<748&&sum2>742&&sum2<1009&&sum3>317&&sum3<560&&s um4>486&&sum4<722)w=8,breakelseif(sum1>618&&sum1<1342&&sum2>=0&&sum2<493&&sum3>=0&&sum3<804&&su m4>=0&&sum4<517)w=9,breakelseif(sum1>425&&sum1<1424&&sum2>=7&&sum2<778&&sum3>177&&sum3<506&&su m4>=0&&sum4<693)w=4,breakendendendendendendendendendend四、总结体会使用这种方法进行对手写数字的判定仍然存在着很大的局限性。
在遇到手写字体书写位置较偏、字体过大时,通过本程序被正确识别的机率就会大大降低。
常见的改进方案有:加入一个投影程序,将图片中的数字区域取出来;以该数字区域为中心,按一定规格大小进行补点;然后再按照以上程序,进行分区统计。
还可以通过不断扩大样本范围的方法等。
通过上面的分析,我们可以看出,基于规则的方法,相对较为简单,比如手写阿拉伯数字识别等识别对象较少的情况,有比较少的时间复杂度和比较高的识别正确率,这种方法的关键在于规则的定义对模式是否有较高的区分度。
样本库的规模越大,样本的分布越接近于实际情况,数字识别的正确率越高。
这次的课程设计,虽然只是研究手写数字的识别,我们一个组的人相互相互讨论,交换意见和建议,并且包括了基础知识的积累、理论的成型、MATLAB语言编写和程序的使用、理论过程的MATLAB程序实现,和期间程序的不断编写和调试,可以说让我们对于MATLAB的数字图像处理整个过程都有了一个很完整和客观的认识。
在课设中我学习到了团队的作用,只有不断的学习,不断的去思考,不断的去寻求答案,不断的去实践,你才会真的掌握一种技术。
在这里要感谢赵老师这几天的悉心指导,感谢这几天和我一起完成课设的同学们,你们给了我很大的帮助,我将会铭记这次宝贵的经验和这几天所有得到的快乐。
五、参考文献1、数字图像处理,电子工业出版社,贾永红,2003;2、数字图像处理(Matlab版),电子工业出版社,冈萨雷斯,2006;3、数字图像处理,电子工业出版社,R.C.Gonzales阮秋崎等,2002;4、人工智能原理,人民邮电出版社,王文杰等,2003。
(注:文档可能无法思考全面,请浏览后下载,供参考。
可复制、编制,期待你的好评与关注)。