資源簡介
基于MATLAB的用神經網的方法實現數字識別(代碼+PPT)

代碼片段和文件信息
%?數字識別
%?生成輸入向量和目標向量
clear?all;
‘LOADING......正在生成輸入向量和目標向量,請稍等...‘
for?kk?=?0:49
????p1=ones(1616);%初始化為16*16的二值圖像像素值(全白)
????m=strcat(‘bpnums\‘int2str(kk)‘.bmp‘);%形成訓練樣本圖像的文件名
????x=imread(m‘bmp‘);%讀入訓練樣本圖像文件
????bw=im2bw(x0.5);%將讀入的訓練樣本圖像轉化為二值圖像
????[ij]=find(bw==0);%尋找二值圖像中像素值為0(黑)的行號和列號
????imin=min(i);%尋找二值圖像中像素值為0的最小行號
????imax=max(i);%。。。。。。。。。。。。最大行號
????jmin=min(j);%。。。。。。。。。。。。最小列號
????jmax=max(j);%。。。。。。。。。。。。最大列號
????bw1=bw(imin:imaxjmin:jmax);%街取圖像像素值為0的最大矩形區域
????rate=16/max(size(bw1));%計算截取圖像轉換成16*16的二值圖像的縮放比例
????bw1=imresize(bw1rate);%將截取圖像轉換成16*16的二值圖像
????[ij]=size(bw1);%轉換圖像的大小
????i1=round((16-i)/2);%計算轉換圖像與標準16*16的圖像的左邊界差
????j1=round((16-j)/2);%計算轉換圖像與標準16*16圖像的上邊界差
????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
????%形成神經網絡目標向量
????switch?kk
????????case{010203040}
????????????t(kk+1)=0;
????????case{111213141}
????????????t(kk+1)=1;
????????case{212223242}
????????????t(kk+1)=2;
????????case{313233343}
????????????t(kk+1)=3;
????????case{414243444}
????????????t(kk+1)=4;
????????case{515253545}
????????????t(kk+1)=5;
????????case{616263646}
????????????t(kk+1)=6;
????????case{717273747}
????????????t(kk+1)=7;
????????case{818283848}
????????????t(kk+1)=8;
????????case{919293949}
????????????t(kk+1)=9;
????end
end
‘LOAD?OK.‘
save?PT?p?t;
%?創建和訓練BP網絡
clear?all;
load?PT?p?t;
pr(1:2561)=0;
pr(1:2562)=1;
net=newff(pr[25?1]{‘logsig‘?‘purelin‘}?‘traingdx‘?‘learngdm‘);
net.trainParam.epochs=3000;
net.trainParam.goal=0.001;
net.trainParam.show=10;
net.trainParam.lr=0.05;
net=train(netpt)
‘TRAIN?OK.‘
save?bpnet?net;
%?識別
for?times=0:999
????clear?all;
????p(1:2561)=1;
????p1=ones(1616);
????load?bpnet?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
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2773??2002-01-01?11:47??bp\bp.asv
?????文件????????2773??2008-05-20?13:43??bp\bp.m
?????文件??????112815??2002-01-01?09:47??bp\bpnet.mat
?????目錄???????????0??2010-06-20?09:20??bp\bpnums\
?????文件????????3942??2008-05-19?20:41??bp\bpnums\0.bmp
?????文件????????3942??2008-05-19?20:42??bp\bpnums\1.bmp
?????文件????????3942??2008-05-19?20:45??bp\bpnums\10.bmp
?????文件????????3942??2008-05-19?20:46??bp\bpnums\11.bmp
?????文件????????3942??2008-05-19?20:46??bp\bpnums\12.bmp
?????文件????????3942??2008-05-19?20:46??bp\bpnums\13.bmp
?????文件????????3942??2008-05-19?20:46??bp\bpnums\14.bmp
?????文件????????3942??2008-05-19?20:46??bp\bpnums\15.bmp
?????文件????????3942??2008-05-19?20:47??bp\bpnums\16.bmp
?????文件????????3942??2008-05-19?20:47??bp\bpnums\17.bmp
?????文件????????3942??2008-05-19?20:47??bp\bpnums\18.bmp
?????文件????????3942??2008-05-19?20:47??bp\bpnums\19.bmp
?????文件????????3942??2008-05-19?20:43??bp\bpnums\2.bmp
?????文件????????3942??2008-05-19?20:48??bp\bpnums\20.bmp
?????文件????????3942??2008-05-19?20:49??bp\bpnums\21.bmp
?????文件????????3942??2008-05-19?20:49??bp\bpnums\22.bmp
?????文件????????3942??2008-05-19?20:49??bp\bpnums\23.bmp
?????文件????????3942??2008-05-19?20:49??bp\bpnums\24.bmp
?????文件????????3942??2008-05-19?20:49??bp\bpnums\25.bmp
?????文件????????3942??2008-05-19?20:49??bp\bpnums\26.bmp
?????文件????????3942??2008-05-19?20:50??bp\bpnums\27.bmp
?????文件????????3942??2008-05-19?20:50??bp\bpnums\28.bmp
?????文件????????3942??2008-05-19?20:50??bp\bpnums\29.bmp
?????文件????????3942??2008-05-19?20:43??bp\bpnums\3.bmp
?????文件????????3942??2008-05-19?20:50??bp\bpnums\30.bmp
?????文件????????3942??2008-05-19?20:50??bp\bpnums\31.bmp
?????文件????????3942??2008-05-19?20:51??bp\bpnums\32.bmp
............此處省略36個文件信息
- 上一篇:相場法建模
- 下一篇:高壓直流輸電MATLAB仿真
評論
共有 條評論