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

📄 sb1.m

📁 这个一个基于MATLAB的手写体数字识别的程序
💻 M
字号:
%形成输入矢量P和目标矢量t的matlab程序
clear all;
filename = dir('*.bmp');     %图像文件格式
for k=1:100
    p1=ones(16,16);          %缩放后用于存储的像素空间
    x=imread(filename(k).name);  %读取图像文件
    bw=im2bw(x,0.5);             %二值化
  [i,j]= find(bw==0);            %寻找数字所在的像素索引
   imin=min(i);                  %求取数字像素占据空间的最小行索引
   imax=max(i);                  %求取数字像素占据空间的最大行的索引
   jmin=min(j);                  %求取数字像素占据空间的最小列的索引
   jmax=max(j);                  %求取数字像素占据空间的最大列的索引 
   bwl=bw(imin:imax,jmin:jmax);  %把图像由39×39缩放为实际数字像素所需的空间
   rate=16/max(size(bwl));       %求取放大比率
   bwl=imresize(bwl,rate);       %按比率放大图像
   [i,j]=size(bwl);              %求取行列数
  i1=round((16-i)/2);            %取整
   j1=round((16-j)/2);
   p1(i1+1:i1+i,j1+1:j1+j)=bwl;  %图像从右向暂存
   p1=-1.*p1+ones(16,16);        %将图像反色
   for m=0:15                    %样本特征存于输入矢量
       p(m*16+1:(m+1)*16,k+1)=p1(1:16,m+1);
   end
switch k                         %对应各个输入样本求取对应的目标矢量
    case{ 1,2,3,4,5,6,7,8,9,10}
      t(k+1)=0;
    case{ 11,12,13,14,15,16,17,18,19,20}
      t(k+1)=1;
    case{ 21,22,23,24,25,26,27,28,29,30}
        t(k+1)=2; 
    case{ 31,32,33,34,35,36,37,38,39,40}
         t(k+1)=3;
     case{ 41,42,43,44,45,46,47,48,49,50}
         t(k+1)=4;
    case{ 51,52,53,54,55,56,57,58,59,60}
         t(k+1)=5;
   case{ 61,62,63,64,65,66,67,68,69,70}
        t(k+1)=6;
   case{ 71,72,73,74,75,76,77,78,79,80}
       t(k+1)=7;
    case{ 81,82,83,84,85,86,87,88,89,90}
       t(k+1)=8;
     case{ 91,92,93,94,95,96,97,98,99,100}
        t(k+1)=9;
    end
end
save swjPT p t;                                   %保存输入矢量和目标矢量

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -