基于人工神经网络的MATLAB手写数字识别系统7页

上传人:文库****9 文档编号:174001092 上传时间:2021-03-15 格式:DOC 页数:8 大小:65.50KB
返回 下载 相关 举报
基于人工神经网络的MATLAB手写数字识别系统7页_第1页
第1页 / 共8页
基于人工神经网络的MATLAB手写数字识别系统7页_第2页
第2页 / 共8页
基于人工神经网络的MATLAB手写数字识别系统7页_第3页
第3页 / 共8页
基于人工神经网络的MATLAB手写数字识别系统7页_第4页
第4页 / 共8页
基于人工神经网络的MATLAB手写数字识别系统7页_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《基于人工神经网络的MATLAB手写数字识别系统7页》由会员分享,可在线阅读,更多相关《基于人工神经网络的MATLAB手写数字识别系统7页(8页珍藏版)》请在金锄头文库上搜索。

1、基于人工神经网络的MATLAB手写数字识别系统1、 函数MouseDraw实现手写识别系统GUI界面的建立和鼠标手写的实现。(使用时保存为MouseDraw.m)function MouseDraw(action)% MouseDraw 本例展示如何以Handle Graphics来设定滑鼠事件% (MouseDraw Events)的反应指令(Callbacks)% 本程序在鼠标移动非常快时,不会造成画“断线”% global不能传矩阵 global InitialX InitialY FigHandle hb2 hb3 hb4 count hb5 hb6 hb7count=E:im.jpg

2、;imSize = 50; if nargin = 0, action = start; endswitch(action) %开启图形视窗 case start, FigHandle = figure(WindowButtonDownFcn,MouseDraw down,DeleteFcn,save bpnet);axis(1 imSize 1 imSize); % 设定图轴范围% set(gca,Position,.25 .20 .7 .7);axis off; grid off; box on; % 将图轴加上图框 title(手写体输入窗);try evalin(base,load b

3、pnet)catch evalin(base,bpgdtrain);end% % fprintf(start); %设定滑鼠按钮被按下时的反应指令为MouseDraw down % set(gcf, WindowButtonDownFcn, MouseDraw down); hb1 = uicontrol(Parent, FigHandle, Units, Normalized, . Position, .3 .01 .13 .07, String, 保存, . Callback,exa=rgb2gray(frame2im(getframe(gca);,imwrite(exa,E:im.jpg

4、);hb2=uicontrol(Parent,FigHandle,Style,popupmenu,Position,50 50 50 30,. String, 26,24, 22, 20, 18, 16,14,12,10);hb3=uicontrol(Parent, FigHandle,Style,text,.Position,10 90 90 30,String, CurrentX() ,CurrentY();hb4=uicontrol(Parent,FigHandle,Style,popupmenu,Position,50 20 50 30,. String,Red,Blue,Black,

5、Yellow,Green); uicontrol(Parent,FigHandle,Position,270 6 70 30,String,训练,Callback,. exa=rgb2gray(frame2im(getframe(gca);,sample=reshape(recgnition(exa),25,1);,clc;,. t=inputdlg(数字类别,样品训练);,t=str2num(t1,1)/10;,. bpnet.trainParam.lr=str2num(get(hb6,String);,bpnet.trainParam.goal=str2num(get(hb7,String

6、);,. bpnet=train(bpnet,sample,t);,save bpnet); uicontrol(Parent,FigHandle,Position,360 6 70 30,String,识别,Callback,. exa=rgb2gray(frame2im(getframe(gca);,sample=reshape(recgnition(exa),25,1);,. record=round(sim(bpnet,sample)*10);,clc;,set(hb5,String,num2str(record),fontSize,48);); uicontrol(Parent,Fi

7、gHandle,Style,text,Position,10 60 30 20,String,字号);uicontrol(Parent,FigHandle,Style,text,Position,10 30 30 20,String,颜色);hb5=uicontrol(Parent,FigHandle,Style,text,Position,10 150 90 90);uicontrol(Parent,FigHandle,Style,text,Position,5 260 50 20,String,学习速率);hb6=uicontrol(Parent,FigHandle,Style,Edit,

8、Position,60 260 30 20,String,0.01); uicontrol(Parent,FigHandle,Style,text,Position,5 290 50 20,String,训练精度);hb7=uicontrol(Parent,FigHandle,Style,Edit,Position,60 290 30 20,String,0.005); uicontrol(Parent,FigHandle,Style,pushbutton,Position,450 6 70 30,String,清除,Callback,cla); %将函数变量导入到工作空间;assignin(

9、base,hb5,hb5);assignin(base,hb6,hb6);assignin(base,hb7,hb7);% dlmwrite(IXT.txt, -10, delimiter, t, precision, 6); dlmwrite(IYT.txt, -10, delimiter, t, precision, 6); %滑鼠按钮被按下时的反应指令 case down, if strcmp(get(FigHandle, SelectionType), normal) %如果是左键 set(FigHandle,pointer,hand); CurPiont = get(gca, Cur

10、rentPoint); InitialX = CurPiont(1,1); InitialY = CurPiont(1,2); dlmwrite(IXT.txt, InitialX, -append, delimiter, t, precision, 6); dlmwrite(IYT.txt, InitialY, -append, delimiter, t, precision, 6); % 列印MouseDraw down!讯息% % fprintf(MouseDraw down!n); % 设定滑鼠移动时的反应指令为MouseDraw move set(gcf, WindowButtonM

11、otionFcn, MouseDraw move); set(gcf, WindowButtonUpFcn, MouseDraw up); elseif strcmp(get(FigHandle, SelectionType), alt) % 如果是右键 set(FigHandle, Pointer, arrow); set( FigHandle, WindowButtonMotionFcn, ) set(FigHandle, WindowButtonUpFcn, ) fprintf(MouseDraw right button down!n); ImageX = importdata(IXT

12、.txt); ImageY = importdata(IYT.txt); InputImage = ones(imSize); roundX = round(ImageX); roundY = round(ImageY); for k = 1:size(ImageX,1) if 0roundX(k) & roundX(k)imSize & 0roundY(k) & roundY(k)imSize InputImage(roundX(k)-1:roundX(k)+2, roundY(k)-1:roundY(k)+2) = 0; end end InputImage = imrotate(InputImage,90); % 图像旋转90 figure(2); imshow(InputImage); end %滑鼠移动时的反应指令 case move, CurPiont = get(gca, CurrentPoint); X = CurPiont(1,1); Y = CurPiont(1,2); set(hb3,String,CurrentX(,num2str(X),),CurrentY(,num2str(Y),); % 当鼠标移动较快时,不会出现离散点。 % 利用y=kx+b直线方程实现。 x_gap = 0.1; % 定义x方向增量 y_gap = 0.1; % 定义y方向增量

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号