⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 e5_2.asv

📁 bp神经网络识别数字
💻 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 + -