fisherself.m

来自「fisher分类」· M 代码 · 共 58 行

M
58
字号
p1=0.4;p2=0.6;
allsamples1=[];%所有训练图像
    for j=1:5
      a=imread(strcat('e:\att_faces\orl_faces\s1','\',num2str(j),'.pgm'));
        b=a(1:112*92);
      b=double(b);
      allsamples1=[allsamples1; b];
    end

mean1=mean(allsamples1,2);
allsamples2=[];
for j=1:5
      a=imread(strcat('e:\att_faces\orl_faces\s2','\',num2str(j),'.pgm'));
      % imshow(a);
      b=a(1:112*92);
      b=double(b);
      allsamples2=[allsamples2; b];
    end

mean2=mean(allsamples2,2);
s1=zeros(size(allsamples1,1));
N1=112*92; 
for k=1:N1
    s1=s1+(allsamples1(:,k)-mean1)*(allsamples1(:,k)-mean1)';
end 
s2=zeros(size(allsamples2,1));
N2=112*92;
for j=1:N2
    s2=s2+(allsamples2(:,j)-mean2)*(allsamples2(:,j)-mean2)';
end 
sw=p1*s1+p2*s2;
w=(sw)^(-1)*(mean1-mean2);
mf1=w'*mean1; 
mf2=w'*mean2;
w0=(mf1+mf2)/2-log(p1/p2)/(N1+N2-2);
samples=[];
 for j=6:10 
        a=imread(strcat('e:\att_faces\orl_faces\s1','\',num2str(j),'.pgm'));
        b=a(1:10304);
        b=double(b);
         samples=[samples; b];
 end
%       point=find_projection(w,samples);
       for ii=1:size(samples,2)
    if w'*samples(:,ii)>w0 
      
      for i=1:5
          
       str=strcat('e:\att_faces\orl_faces\s1','\',num2str(i),'.pgm');  %第一类
       eval('imshow(str);');
      end
    else 
              for i=1:5
      str=strcat('e:\att_faces\orl_faces\s1','\',num2str(i),'.pgm');  %第二类
       eval('imshow(str);'); 
              end
    end
end

⌨️ 快捷键说明

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