欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:1220453       资源大小:65.50KB        全文页数:7页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、基于人工神经网络的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 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) InitialX step_x = x_gap; else step_x = -x_gap; end if Y InitialY step_y = y_gap; else step_y = -y_gap; end

    13、 % 定义x,y的变化范围和步长 if abs(X-InitialX) 0.01 % 线平行于y轴,即斜率不存在时 iy = InitialY:step_y:Y; ix = X.*ones(1,size(iy,2); else ix = InitialX:step_x:X ; % 定义x的变化范围和步长 % 当斜率存在,即k = (Y-InitialY)/(X-InitialX) = 0 iy = (Y-InitialY)/(X-InitialX).*(ix-InitialX)+InitialY; end ImageX = ix, X; ImageY = cat(2, iy, Y); popu

    14、p_index1=26-(get(hb2,Value)-1)*2; popup_index2=get(hb4,Value); switch(popup_index2) case 1 line(ImageX,ImageY, marker, ., markerSize,popup_index1, . LineStyle, -, LineWidth, 4, Color, Red); case 2 line(ImageX,ImageY, marker, ., markerSize,popup_index1, . LineStyle, -, LineWidth, 4, Color, Blue); cas

    15、e 3 line(ImageX,ImageY, marker, ., markerSize,popup_index1, . LineStyle, -, LineWidth, 4, Color, Black); case 4 line(ImageX,ImageY, marker, ., markerSize,popup_index1, . LineStyle, -, LineWidth, 4, Color, Yellow); case 5 line(ImageX,ImageY, marker, ., markerSize,popup_index1, . LineStyle, -, LineWid

    16、th, 4, Color, Green); end dlmwrite(IXT.txt, ImageX, -append, delimiter, t, precision, 6); dlmwrite(IYT.txt, ImageY, -append, delimiter, t, precision, 6); InitialX = X; %记住当前点坐标 InitialY = Y; %记住当前点坐标 % 列印MouseDraw is moving!及滑鼠现在位置 % fprintf(MouseDraw is moving! Current location = (%g, %g)n, . % Cur

    17、Piont(1,1), CurPiont(1,2); % % fprintf(MouseDraw move!n); % 设定滑鼠按钮被释放时的反应指令为MouseDraw up set(gcf, WindowButtonUpFcn, MouseDraw up); %滑鼠按钮被释放时的反应指令 case up, % 清除滑鼠移动时的反应指令 set(gcf, WindowButtonMotionFcn, ); % 清除滑鼠按钮被释放时的反应指令 set(gcf, WindowButtonUpFcn, ); % 列印MouseDraw up! % % fprintf(MouseDraw up!n)

    18、; end end二、 实现手写数字图像特征的提取:(存为recgnition.m)function sample=recgnition(exa)i,j=find(exa=204);imin=min(i);imax=max(i);jmin=min(j);jmax=max(j);a=exa(imin:imax,jmin:jmax);M=imax-imin+1;N=jmax-jmin+1;for m=1:5 for n=1:5 exa_cm,n=a(1+(m-1)*M/5:m*M/5,1+(n-1)*N/5:n*N/5); sample(1,(m-1)*5+n)=size(find(exa_cm,

    19、n=204),1)/(M*N/25); %subplot(5,5,(m-1)*5+n),subimage(exa_cm,n); endend 三、 建立bp神经网络。(可修改所建立bp神经网络参数,也可建立其他类型神经网络)。x=ones(25,2);x(:,1)=0;bpnet=newff(x,50,1,logsig,logsig,traingd);bpnet.trainParam.show=5;%显示训练迭代过程(每隔5次训练,显示一次训练进程)bpnet.trainParam.lr=0.01;%学习速率bpnet.trainParam.epochs=2000;%最大训练次数bpnet.trainParam.goal=0.005;%训练要求精度(0.005)此段命令应存为bpgdtrain.m文件。以上函数以及m文件须保存以后才可调用。神经网络要经过一定数量的训练才能达到较高的识别精度。使用时先运行MouseDraw函数,出现下图界面,界面介绍:保存:可将手写数字图像保存为im.jpg文件。训练:用于有导师训练神经网络,用户使用鼠标写好数字,点击训练,弹出输入框框,输入相应正确数字。识别:对界面上的手写数字进行识别,结果显示在左边白色方框。清除:可清除界面上数字,重新书写。字号、颜色选择下拉框可选择手写数字字号与颜色。:控制训练精度和学习速率。具体参照bp神经网络。


    注意事项

    本文(基于人工神经网络的MATLAB手写数字识别系统.doc)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开