资源简介

基于贝叶斯的英文字母识别, matlab实现

资源截图

代码片段和文件信息

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%识别26个大写字母%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;
clear all;
disp(‘回车键 ...‘)
chos=input(‘请直接按回车键正在生成输入向量和目标向量,请稍等… ‘);
if isempty(chos) chos=0; end 
if chos==0
for kk=0:256 
    p1=ones(1616);% 初始化16×16的二值图像像素值(全白)   
    m =strcat(‘nums\‘int2str(kk)‘.bmp‘);% 形成训练样本图像的文件名(0~89.bmp)    
    x=imread(m‘bmp‘);% 读入训练样本图像文件   
    bw=im2bw(x0.5);% 将读入的训练样本图像转换为二值图像  
    [ij]= find(bw==0);% 寻找二值图像中像素值为0(黑)的行号和列号  
    imin=min(i);% 寻找二值图像中像素值为0(黑)的最小行号 
    imax=max(i);% 寻找二值图像中像素值为0(黑)的最大行号   
    jmin=min(j);% 寻找二值图像中像素值为0(黑)的最小列号   
    jmax=max(j);% 寻找二值图像中像素值为0(黑)的最大列号   
    bw1=bw(imin:imaxjmin:jmax);% 截取图像像素值为0(黑)的最大矩形区域 
    rate=16/max(size(bw1));% 计算截取图像转换为16×16的二值图像的缩放比例
    bw1=imresize(bw1rate);% 将截取图像转换为16×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{0123456789}  % 字母A       
    t(kk+1)=0;   
case{10111213141516171819}  % 字母B    
    t(kk+1)=1;    
case{20212223242526272829}  % 字母C      
    t(kk+1)=2;    
case{30313233343536373839}  % 字母D      
    t(kk+1)=3;    
case{40414243444546474849}  %字母E           
    t(kk+1)=4;       
case{50515253545556575859}  %字母F        
    t(kk+1)=5;    
case{60616263646566676869}  % 字母G       
    t(kk+1)=6;     
case{70717273747576777879}  % 字母H        
    t(kk+1)=7;            
case{80818283848586878889}  % 字母I     
    t(kk+1)=8;       
case{90919293949596979899}  % 字母J      
    t(kk+1)=9; 
case{100101102103104105106107108109}  % 字母K     
    t(kk+1)=10;
case{110111112113114115116117118119}  % 字母L     
    t(kk+1)=11; 
case{120121122123124125126127128129}  % 字母M    
    t(kk+1)=12; 
case{130131132133134135136137138139}  % 字母N     
    t(kk+1)=13;
case{140141142143144145146147148149}  % 字母O      
    t(kk+1)=14;
case{150151152153154155156157158159}  % 字母P      
    t(kk+1)=15;
case{160161162163164165166167168169}  % 字母Q      
    t(kk+1)=16; 
case{170171172173174175176177178179}  % 字母R     
    t(kk+1)=17; 
case{180181182183184185186187188189}  % 字母S     
    t(kk+1)=18; 
case{190191192193194195196197198199}  %字母T     
    t(kk+1)=19; 
case{200201202203204205206207208209}  % 字母U     
    t(kk+1)=20;
case{210211212213214215216217218219}  % 字母V      
    t(kk+1)=21; 
case{220221222223224225226227228229}  % 字母W      
    t(kk+1)=22;
case{230231232233234235236237238239}  % 字母X    
    t

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

     文件      14502  2009-05-07 22:23  字母识别\123.bmp

     文件      12566  2009-05-07 22:22  字母识别\143.bmp

     文件     118191  2010-06-01 15:17  字母识别\E52net.mat

     文件       4344  2010-06-01 15:15  字母识别\E52PT.mat

     文件       4373  2010-05-31 13:03  字母识别\shibie.asv

     文件       4376  2009-06-23 13:32  字母识别\shibie.m

     文件       1511  2009-06-23 13:34  字母识别\shibie2.m

    ..A.SH.    395292  2010-06-01 15:21  字母识别\Thumbs.db

     文件      48128  2010-06-01 16:22  字母识别\神经网络.doc

     目录          0  2010-06-01 16:28  字母识别

----------- ---------  ---------- -----  ----

               603283                    10


评论

共有 条评论