• 实验目的

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

  或者识别abcd等字母

  • 实验原理

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

  • 实验内容

   1:画图准备机器学习数字识别 数字识别程序_机器学习数字识别

机器学习数字识别 数字识别程序_回调函数_02

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

2:

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

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

机器学习数字识别 数字识别程序_开发语言_03

3:

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

 

机器学习数字识别 数字识别程序_回调函数_04

4:样本的建立的准备。

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

机器学习数字识别 数字识别程序_matlab_05

5:样本图片的建立。

机器学习数字识别 数字识别程序_开发语言_06

机器学习数字识别 数字识别程序_机器学习数字识别_07

机器学习数字识别 数字识别程序_开发语言_08

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

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

机器学习数字识别 数字识别程序_机器学习数字识别_09

机器学习数字识别 数字识别程序_机器学习数字识别_10

7:样本数据库的建立。

机器学习数字识别 数字识别程序_机器学习数字识别_11

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

 

机器学习数字识别 数字识别程序_机器学习数字识别_12

机器学习数字识别 数字识别程序_回调函数_13

机器学习数字识别 数字识别程序_机器学习数字识别_14

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

机器学习数字识别 数字识别程序_回调函数_15

  • 心得体会

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

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