• 大小: 225KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-30
  • 语言: Matlab
  • 标签: Matlab  数字识别  

资源简介

用Matlab实现的0-9个阿拉伯数字识别,代码全并且有注释,BP神经网入门的好例子~

资源截图

代码片段和文件信息

% 数字识别

% 生成输入向量和目标向量
clear all;
‘LOADING......‘

for kk = 0:99
    p1=ones(1616);  %建立全为1的样本矩阵 
    m=strcat(‘nums\‘int2str(kk)‘.bmp‘);
    x=imread(m‘bmp‘);  %循环读入0-99个样本数字文件 
    bw=im2bw(x0.5);   %对输入图像进行二值化处理 采用全局阈值0.5
    [ij]=find(bw==0);
    imin=min(i);
    imax=max(i);
    jmin=min(j);
    jmax=max(j);
    bw1=bw(imin:imaxjmin:jmax);  %截取是入图像中的数字部分
    rate=16/max(size(bw1));
    bw1=imresize(bw1rate);  %对输入文件变尺寸处理
    [ij]=size(bw1);
    i1=round((16-i)/2);
    j1=round((16-j)/2);
    p1(i1+1:i1+ij1+1:j1+j)=bw1;  %建立起16*16的矩阵
    p1=-1.*p1+ones(1616);  %反色处理
    for m=0:15
        p(m*16+1:(m+1)*16kk+1)=p1(1:16m+1);
    end    %将处理的源样本输入供神经网络训练的样本   pcolum是样本数循环变量 
    
    switch kk
        case{0102030405060708090}
            t(kk+1)=0;   %数字0 
        case{1112131415161718191}
            t(kk+1)=1;   %数字1    
        case{2122232425262728292}
            t(kk+1)=2;   %数字2 
        case{3132333435363738393}
            t(kk+1)=3;   %数字3 
        case{4142434445464748494}
            t(kk+1)=4;   %数字4 
        case{5152535455565758595}
            t(kk+1)=5;   %数字5 
        case{6162636465666768696}
            t(kk+1)=6;   %数字6 
        case{7172737475767778797}
            t(kk+1)=7;   %数字7 
        case{8182838485868788898}
            t(kk+1)=8;   %数字8 
        case{9192939495969798999}
            t(kk+1)=9;   %数字9 
    end
end     %建立与训练样本对应的输出值t 

‘LOAD OK.‘

save E52PT p t;
% 创建和训练BP网络

clear all;
load E52PT p t;   %加载样本 

pr(1:2561)=0;
pr(1:2562)=1;
%创建BP网络 
net=newff(pr[25 1]{‘logsig‘ ‘purelin‘} ‘traingdx‘ ‘learngdm‘); 
net.trainParam.epochs=2500;  %设置训练步数 
net.trainParam.goal=0.001;   %设置训练目标 
net.trainParam.show=10;      %设置训练显示格数 
net.trainParam.lr=0.05;      %设置训练学习率 
net=train(netpt);          %训练BP网络   

‘TRAIN OK.‘

save E52net net;

% 识别
for times=0:999
    clear all;
    p(1:2561)=1;
    p1=ones(1616);
    load E52net net;
    test=input(‘FileName:‘ ‘s‘);
    x=imread(test‘bmp‘);
    bw=im2bw(x0.5);
    [ij]=find(bw==0);
    imin=min(i);
    imax=max(i);
    jmin=min(j);
    jmax=max(j);
    bw1=bw(imin:imaxjmin:jmax);
    rate=16/max(size(bw1));
    bw1=imresize(bw1rate);
    [ij]=size(bw1);
    i1=round((16-i)/2);
    j1=round((16-j)/2);
    p1(i1+1:i1+ij1+1:j1+j)=bw1;
    p1=-1.*p1+ones(1616);
    for m=0:15
        p(m*16+1:(m+1)*161)=p1(1:16m+1);
    end
    [aPfAf]=sim(netp);   %测试网络 
    imshow(p1);
    a=round(a)       %输出网络识别结果 
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     112853  2009-05-19 21:51  numberRecognition\E52net.mat

     文件       2033  2009-05-19 21:51  numberRecognition\E52PT.mat

     文件       2852  2009-05-19 21:52  numberRecognition\numberRecognition.m

     文件       3126  2005-11-13 20:43  numberRecognition\nums\0.bmp

     文件       3126  2005-11-13 20:43  numberRecognition\nums\1.bmp

     文件       3126  2005-11-13 20:50  numberRecognition\nums\10.bmp

     文件       3126  2005-11-13 20:50  numberRecognition\nums\11.bmp

     文件       3126  2005-11-13 20:50  numberRecognition\nums\12.bmp

     文件       3126  2005-11-13 20:50  numberRecognition\nums\13.bmp

     文件       3126  2005-11-13 20:50  numberRecognition\nums\14.bmp

     文件       3126  2005-11-13 20:50  numberRecognition\nums\15.bmp

     文件       3126  2005-11-13 20:50  numberRecognition\nums\16.bmp

     文件       3126  2005-11-13 20:50  numberRecognition\nums\17.bmp

     文件       3126  2005-11-13 20:50  numberRecognition\nums\18.bmp

     文件       3126  2005-11-13 20:50  numberRecognition\nums\19.bmp

     文件       3126  2005-11-13 20:43  numberRecognition\nums\2.bmp

     文件       3126  2005-11-13 20:51  numberRecognition\nums\20.bmp

     文件       3126  2005-11-13 20:51  numberRecognition\nums\21.bmp

     文件       3126  2005-11-13 20:51  numberRecognition\nums\22.bmp

     文件       3126  2005-11-13 20:51  numberRecognition\nums\23.bmp

     文件       3126  2005-11-13 20:51  numberRecognition\nums\24.bmp

     文件       3126  2005-11-13 20:51  numberRecognition\nums\25.bmp

     文件       3126  2005-11-13 20:51  numberRecognition\nums\26.bmp

     文件       3126  2005-11-13 20:51  numberRecognition\nums\27.bmp

     文件       3126  2005-11-13 20:51  numberRecognition\nums\28.bmp

     文件       3126  2005-11-13 20:51  numberRecognition\nums\29.bmp

     文件       3126  2005-11-13 20:43  numberRecognition\nums\3.bmp

     文件       3126  2005-11-13 20:55  numberRecognition\nums\30.bmp

     文件       3126  2005-11-13 20:55  numberRecognition\nums\31.bmp

     文件       3126  2005-11-13 20:55  numberRecognition\nums\32.bmp

............此处省略79个文件信息

评论

共有 条评论