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

📄 svd_right_rate.m

📁 基于SVD的人脸识别
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  right_rate=50.00%        %%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear all
close all
clc 
load train
  

RightNum=0;
TESTIMGNUM=400;
wrong=[];
for TestImgNum=1:400
    str=strcat(int2str(TestImgNum),'.bmp'); %concatenates two strings that form the name of the image
    str=strcat('F:\zgq\人脸识别\work\work\行矩阵\',str);
    eval('InputImage=imread(str);');
    InputImage=double(InputImage);
    %InputImage=InputImage*InputImage';
     [V d U]=svd(InputImage);
       InImWeight=[];     
  for ii=1:K
       InImWeight=[InImWeight;d(ii,ii)];
  end 
  
%A=InputImage';
%L=A*A';
%[vv dd]=eig(L);
%v=[];
%d=[];
%for iii=1:size(vv,2) 
%        v=[v vv(:,iii)];
%        d=[d dd(iii,iii)];  %[d] is row行向量//4.6 tropic zhang.
%end
%[B index]=sort(d);%B return an ascending sequence;index is the position of new numder in original row.//4.6 tropic
%ind=zeros(size(index));%also the size of [d];a row//4.6 tropic zhang. 
% dtemp=zeros(size(index));%also the size of [d];a row //4.6 tropic zhang.
% vtemp=zeros(size(v));%a matrix
% len=length(index);
% for iiii=1:len
%    dtemp(iiii)=B(len+1-iiii);
%    ind(iiii)=len+1-index(iiii);
%   vtemp(:,ind(iiii))=v(:,iiii);
% end
% d=dtemp(1:K);
% v=vtemp(:,1:K);
%InImWeight_kl=d';
%InImWeight=InImWeight+InImWeight_kl/10000;
   
   

%InImWeight=single(InImWeight);
%%%%----------方法三||方法四-----
%inimweight_mean=mean(InImWeight);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%            相似度计算计算        %%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
e=[];
for i=1:M
    q = D(:,i);
    

    
%%%%%%%--------- 方法二--------------%%%%
%-----------特征脸空间夹角最小-------%%%%%%    
mag=  InImWeight'*q/(norm(InImWeight)*norm(q)) ;
 e = [e mag];
end

%%%%%%%--------- 方法三----------%%%%%
%%%%---------相关系数法---------%%%
%q_mean=mean(q);
%mag=(InImWeight-inimweight_mean)'*(q-q_mean)/(norm(InImWeight-inimweight_mean)*norm(q-q_mean));
%e = [e mag];
%end

kk = 1:size(e,2);

MaximumValue=max(e);
MinimumValue=min(e);



%%%  -------最小夹角||相关系数-----%%%
t=max(e);

[mM nN]=size(e);

l=0;
for i=1:nN
    if(e(i)==t)
        l=i;
    end
end


if TestImgNum>=1&&TestImgNum<=10
    if l==1
        RightNum=RightNum+1;
    else
        wrong=[wrong TestImgNum];
       % TestImgNum
       % [mmm nnn]=sort(e);
       % nnn
    end
end

if TestImgNum>=11&&TestImgNum<=100
    temp=int2str(TestImgNum-1);
if l==str2num(temp(1,1))+1
    RightNum=RightNum+1;
    else
        wrong=[wrong TestImgNum];
       % TestImgNum
       % [mmm nnn]=sort(e);
       % nnn
end
end

if TestImgNum>=101&&TestImgNum<=400
    temp=int2str(TestImgNum-1);
    if l==str2num(temp(1,1:2))+1
        RightNum=RightNum+1;
        else
        wrong=[wrong TestImgNum];
      %  TestImgNum
      %  [mmm nnn]=sort(e);
      %  nnn
    end
end




end

%wrong2=wrong;
rate=RightNum/TESTIMGNUM
%save wrongdata2 wrong2

⌨️ 快捷键说明

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