基于人工神经网络的MATLAB手写数字识别系统
- 函数MouseDraw实现手写识别系统GUI界面的建立和鼠标手写的实现。(使用时保存为MouseDraw.m)
function MouseDraw(action)
% MouseDraw 本例展示如何以Handle Graphics来设定滑鼠事件
% (MouseDraw Events)的反应指令(Callbacks)
% 本程序在鼠标移动非常快时,不会造成画“断线”
% global不能传矩阵
global InitialX InitialY FigHandle hb2 hb3 hb4 count hb5 hb6 hb7
count='E:\im.jpg';
imSize = 50;
if nargin == 0, action = 'start';
end
switch(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 bpnet')
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'')']);
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','Yellow','Green'