?? e5_2.asv
字號:
% Example52PT
clc;
clear all;
'正在生成輸入向量和目標向量,請稍等…'
for kk=0:89
p1=ones(16,16);% 初始化16×16的二值圖像像素值(全白)
m =strcat(int2str(kk),'.bmp');% 形成訓練樣本圖像的文件名(0~89.bmp)
x=imread(m,'bmp');% 讀入訓練樣本圖像文件
bw=im2bw(x,0.5);% 將讀入的訓練樣本圖像轉換為二值圖像
[i,j]= find(bw==0);% 尋找二值圖像中像素值為0(黑)的行號和列號
imin=min(i);% 尋找二值圖像中像素值為0(黑)的最小行號
imax=max(i);% 尋找二值圖像中像素值為0(黑)的最大行號
jmin=min(j);% 尋找二值圖像中像素值為0(黑)的最小列號
jmax=max(j);% 尋找二值圖像中像素值為0(黑)的最大列號
bw1=bw(imin:imax,jmin:jmax);% 截取圖像像素值為0(黑)的最大矩形區域
rate=16/max(size(bw1));% 計算截取圖像轉換為16×16的二值圖像的縮放比例
bw1=imresize(bw1,rate);% 將截取圖像轉換為16×16的二值圖像(由于縮放比例
% 大多數情況下不為16的倍數,所以可能存在轉換誤差)
[i,j]=size(bw1);% 轉換圖像的大小
i1=round((16-i)/2);% 計算轉換圖像與標準16×16的圖像的左邊界差
j1=round((16-j)/2);% 計算轉換圖像與標準16×16的圖像的上邊界差
p1(i1+1:i1+i,j1+1:j1+j)=bw1;% 將截取圖像轉換為標準的16×16的圖像
p1= -1.*p1+ones(16,16);% 反色處理 % 以圖像數據形成神經網絡輸入向量
for m=0:15
p(m*16+1:(m +1)*16,kk+1)=p1(1:16,m+1);
end % 形成神經網絡目標向量
switch kk
case{0,10,20,30,40,50,60,70,80,90} % 數字0
t(kk+1)=0;
case{1,11,21,31,41,51,61,71,81,91} % 數字1
t(kk+1)=1;
case{2,12,22,32,42,52,62,72,82,92} % 數字2
t(kk+1)=2;
case{3,13,23,33,43,53,63,73,83,93} % 數字3
t(kk+1)=3;
case{4,14,24,34,44,54,64,74,84,94} % 數字4
t(kk+1)=4;
case{5,15,25,35,45,55,65,75,85,95} % 數字5
t(kk+1)=5;
case{6,16,26,36,46,56,66,76,86,96} % 數字6
t(kk+1)=6;
case{7,17,27,37,47,57,67,77,87,97} % 數字7
t(kk+1)=7;
case{8,18,28,38,48,58,68,78,88,98} % 數字8
t(kk+1)=8;
case{9,19,29,39,49,59,69,79,89,99} % 數字9
t(kk+1)=9;
end
end
save E52PT p t; % 存儲形成的訓練樣本集(輸入向量和目標向量)
'輸入向量和目標向量生成結束!'
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -