《模式识别数字识别matlab》由会员分享,可在线阅读,更多相关《模式识别数字识别matlab(6页珍藏版)》请在金锄头文库上搜索。
1、模式识别数字识别模式识别数字识别 matlabmatlabclear allclctongji=0;file1=E:MATLAB R2009a Portableshuzi;% 图片文件夹file2=.bmp; %文件类型r=0.5;%训练样本$for i=0:1:13;for j=1:30a=int2str(i);b=int2str(j);A=imread(strcat(file1,a,b,file2);%读文件A_bw=im2bw(A,r);%二值化m,n=size(A_bw);%矩阵分成 4 块,并统计每块 1 的个数%x1=0;for k=(1:m/2)for p=(1:n/2)if A
2、_bw(k,p)=1x1=x1+1;endendendx2=0;for k=(m/2+1:m)for p=(1:n/2)if A_bw(k,p)=1x2=x2+1;endendendx3=0;for k=(1:m/2)for p=(n/2+1:n)if A_bw(k,p)=1x3=x3+1;endendendx4=0;for k=(m/2+1:m)for p=(n/2+1:n)if A_bw(k,p)=1x4=x4+1;endendends(j,:)=x1 x2 x3 x4 ;%形成 4 维向量endfor q=1:4temp=mean(s(:,q);%求列平均值M(q)=temp;%类中心e
3、nd S(:,i+1)=M;%类中心矩阵 9*14end%测试样本%error=0;for ii=0:13for jj=31:40a=int2str(ii);b=int2str(jj);A=imread(strcat(fil1,a,b,fil2);%读测试文件A_bw=im2bw(A,r);%二值化m,n=size(A_bw);%矩阵分块x1=0;for k=(1:m/2)for p=(1:n/2)if A_bw(k,p)=1x1=x1+1;endendendx2=0;for k=(m/2+1:m)for p=(1:n/2)if A_bw(k,p)=1x2=x2+1;endendendx3=0
4、;for k=(1:m/2)for p=(n/2+1:n)if A_bw(k,p)=1x3=x3+1;endendendx4=0;for k=(m/2+1:m)for p=(n/2+1:n)if A_bw(k,p)=1x4=x4+1;endendendt=x1,x2,x3,x4;%形成 4 维特征向量tt=x1,x2,x3,x4;d_1=0;d_3=inf;for y=1:14d_1=sum(t-S(:,y).2);%计算欧式距离%sum1=0;for j=1:4sum1=sum1+(tt(j)-S(j,y)2;endDistance(y) = sqrt(sum1);%求测试样本与各个数字特征
5、的欧式距离%if d_3d_1 %计算最小距离d_3=d_1;if y=10d_2=int2str(y-1);endif y=11n=A;d_2=strcat(n+y-11);endif y=12n=C;d_2=strcat(n+y-12);endif y=13n=D;d_2=strcat(n+y-13);endif y=14n=E;d_2=strcat(n+y-14);enddd_1(ii+1,jj-30)=d_2;%输出判决结果 end%if endend %y end 1:14%C,class = min(Distance); %欧氏距离最小的哪一类Class=class-1 ;if (ii=Class) %统计识别正确的个数tongji=tongji+1;elseerror=error+1;end% end %jj 31:40end %ii end 0:13disp(dd_1)disp(识别率为=) recognize=(tongji/140)*100 %识别率disp(错误率为=) rize=(error/140)*100 %识别率tongjierror