matlab实验之简单识别手写0-9数字程序

  • 实验目的

  能够用matlab设计一个程序,能够简单识别0-9等阿拉伯数字

  或者识别abcd等字母

  • 实验原理

根据手写图片在二通道里的每个像素点以二进制表示,可以设计一个函数,得到每一个手写样本的黑色像素所占比,首先分为5*5个小块,计算每一个小块里的黑色像素占比,装载在一个矩形里,重塑成25行*1列的矩阵。 再根据建立的手写样本数据, 比较样本库里的数据和现在手写的数字或字母的到的数据对比,利用欧式距离公式,对比库里的10个矩阵和 目前手写的数字或字母通过函数getfuntion 得到的矩阵算距离,最小的即赋予相映的标签yLabel

  • 实验内容

   1:画图准备

进入guide'窗口,建立一个坐标,右击坐标进入回调函数createFcn,设置图像大小,为240*240像素

2:

进入guide页面 拖动并设置号按钮,坐标,并且修改string名字。

右键guide窗口空白处建立buttondownfcn函数,代码如上,设置一个全局变量pos1 ,用strcmp捕捉鼠标当前状态,一旦左键点击,pos1 则捕捉当前鼠标在图里的位置。

3:

同理建立buttonmotionFcn,当鼠标在上一步按下时,buttondown=1,将鼠标每一个所在的位置连线,赋予maker,标记类型,linewidth线宽,color颜色。

 

4:样本的建立的准备。

增加‘保存’按钮,并进入到该按钮的回调函数里,添加如上代码。 读取当前坐标图片,保存为自定义bmp文件‘

5:样本图片的建立。

画出0-9十个阿拉伯数字,没个数字分别以0-1,0-2, 1-1,9-1,9-2存储。保存在手写样本文件夹里

6:getfuntion函数,目的是得出图片的有效区域,并且将图片转为数据,用矩阵记录数据。

7:样本数据库的建立。

8:寻找最接近的矩阵,利用欧拉距离公式。For循环求出目前图片与样本里的10类的数据的距离,求出距离最小的,归为此类的标签。即匹配成功。

 

加入if语句,建立手写字母样本。赋予abcde对应顺序01234,即可识别简单字母

  • 心得体会

此次实验最大的心得就是明白平时要做好实验准备,提前巩固好知识点,明白一步步的流程,这样子实验课上才能迅速的做完,并且思考,如果没有准备 就会很慌乱,速度会很慢,效率也不

好,还有就是同学们可以相互交流,能够解决很多问题,实在不懂就去问杨老师。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值