基于PCA的人脸识别MATLAB


修改下ORL人脸数据库的路径就能用,可显示特征脸、平均脸、识别率
资源截图
代码片段和文件信息

%clc;
load face_save_pca1d;
tic;

if select==1;%平均样本作为聚类中心
 k=0;
 for i=1:m:nImages
    k=k+1;
    A=x(:i);
    for j=2:m
        A=A+x(:i+j-1);
    end;
    Y1(:k)=A;
 end;
 Y1=1/m*Y1;
 for i=1:40
    Y(:i)=V‘*Y1(:i);%平均样本作为聚类中心
 end;
 
 else  
    for i=1:nImages
        Y(::i)=V‘*x(:i);%单个样本作为聚类中心
    end
end

error=0;correct=0;
%读取训练集
for ii=1:40
    for jj=m+1:10
       filename  = sprintf(‘C:\Users\ltt\Desktop\FACE ORL\orl_faces\s%d\%d.pgm‘iijj);%1610%cbcl-face-database
       T =imread(filename);
       TT = double(T)/255;
       TT=TT.^exp;%0.6 is the best
       T1=TT(:);
       B =  V‘*T1; 
     if select==1%平均样本作为聚类中心
       for i=1:40
           A=B-Y(:i);
           dist=dot(A(:)A(:));
           dist_comp(i)=dist;    
           strDist(i) = cellstr(sprintf(‘%2.2f
‘dist_comp(i)));
        end;
        [sorted sorted_index] = sort(dist_comp); % sort distances
        sorted_class=sorted_index(1);
        if sorted_index(1)==ii;
            correct=correct+1;
        else 
            error=error+1;
        end
   else %单个样本作为聚类中心
    for i=1:nImages
           %A=B-Y(:i);
           %dist=dot(A(:)A(:));
           A=Y(:i);
           dist=sum((A(:)-B(:)).^2).^0.5;
           dist_comp(i)=dist;    
           strDist(i) = cellstr(sprintf(‘%2.2f
‘dist_comp(i)));
     end;
       [sorted sorted_index] = sort(dist_comp); % sort distances
       iii=sorted_index(1);
       sorted_class=fix(iii/m)+1;
       j_j=mod(iiim);
       if (j_j==0) sorted_class=sorted_class-1;end;
       if (sorted_class==ii) correct=correct+1;
          else error=error+1;
           %   figure          
            %  subplot(211); imshow(T); title(‘original image‘);
             % subplot(212);   
              %filename  = sprintf(‘C:\Users\ltt\Desktop\FACE ORL\orl_faces\s%d\%d.pgm‘sorted_class1);
              %T2 = imread(filename); imshow(T2); title(‘error image‘);
       end; %end above if
 end   %end the total if(if select==1)
  end;  %end for (the varible is jj)

end;   %end for (the varible is i)
correct_rat=correct/((10-m)*40);
display (sprintf(‘the correct=%d  error=%d   correct_rat=%.4f‘correcterrorcorrect_rat));
%test_endtime=datestr(now13)
toc;
%display(‘*********end of program**************‘);
display(‘                                              ‘);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-07-04 08:53  face
     目录           0  2013-07-04 08:53  face1DPCA
     文件        2475  2013-05-10 20:56  face1DPCAPCA1D_TEST.asv
     文件        2475  2013-05-19 15:34  face1DPCAPCA1D_TEST.m
     文件        1503  2013-05-19 16:18  face1DPCAPCA1D_TRAIN.asv
     文件        1503  2013-05-19 16:18  face1DPCAPCA1D_TRAIN.m
     文件         121  2013-05-10 17:22  face1DPCAScaleImage.m
     文件    14512940  2013-05-19 16:19  face1DPCAface_save_pca1d.mat
     目录           0  2013-07-04 08:53  faceorl_faces
     文件        1579  1995-02-23 18:13  faceorl_facesREADME
     目录           0  2013-07-04 08:53  faceorl_facess1
     文件       10318  1994-04-18 14:17  faceorl_facess11.pgm
     文件       10318  1994-04-18 14:07  faceorl_facess110.pgm
     文件       10318  1994-04-18 14:17  faceorl_facess12.pgm
     文件       10318  1994-04-18 14:17  faceorl_facess13.pgm
     文件       10318  1994-04-18 14:17  faceorl_facess14.pgm
     文件       10318  1994-04-18 14:17  faceorl_facess15.pgm
     文件       10318  1994-04-18 14:07  faceorl_facess16.pgm
     文件       10318  1994-04-18 14:07  faceorl_facess17.pgm
     文件       10318  1994-04-18 14:07  faceorl_facess18.pgm
     文件       10318  1994-04-18 14:07  faceorl_facess19.pgm
     目录           0  2013-07-04 08:53  faceorl_facess10
     文件       10318  1994-04-18 14:18  faceorl_facess101.pgm
     文件       10318  1994-04-18 14:07  faceorl_facess1010.pgm
     文件       10318  1994-04-18 14:18  faceorl_facess102.pgm
     文件       10318  1994-04-18 14:18  faceorl_facess103.pgm
     文件       10318  1994-04-18 14:18  faceorl_facess104.pgm
     文件       10318  1994-04-18 14:18  faceorl_facess105.pgm
     文件       10318  1994-04-18 14:07  faceorl_facess106.pgm
     文件       10318  1994-04-18 14:07  faceorl_facess107.pgm
     文件       10318  1994-04-18 14:07  faceorl_facess108.pgm
............此处省略419个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)