projattfaces.m

来自「It is for Face Recognition」· M 代码 · 共 67 行

M
67
字号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% function projAttFaces()
%   z.li, 03-10-2004
%   proj att face for recog work
% function dependency:
%   - loadATTFace()
%   - cropFace()
% input:
%   side - side margin
%   top, low - top and bottom margin
%   fw, fh - face icon size
%   T, mf - model info
% output:
%   prj   - d x nFace*nPose  feature vec
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%function [prj]=projAttFaces(side, top, low, fw, fh, T, mf)
function [prj]=projAttFaces(side, top, low, fw, fh, T, mf)
 dbg='n';
 if dbg == 'y'
    side = 0.5; top= 1.0; low = 1.0; fw=20; fh=20;     
    T = load('pcaFeretFaceSide05Top10Low10W20H20LumaMin60Max150.dat');
    mf = load('meanFeretFaceSide05Top10Low10W20H20LumaMin60Max150.dat');
 end

 % const
 dbgPlot = 'n'; 
 % plot with dimensions 
 pd1 = 1; pd2 = 2;
 nFace = 40; nPose = 10;
 eyes = load('attEyesAnnotation.dat');

 for j=1:nFace
   offs = (j-1)*nPose;
   fprintf('\n');
   for k=1:nPose
      img = loadATTFace(j, k);
      lex = eyes(offs+k, 1); ley = eyes(offs+k, 2);
      rex = eyes(offs+k, 3); rey = eyes(offs+k, 4);
      vec = cropFace(img, lex, ley, rex, rey, side, top, low, fw, fh);
      if vec == -1
         fprintf('x');
         prj(:,offs+k) = NaN;
      else
         fprintf('.');
         % projection
         prj(:,offs+k) =  T*(vec-mf)'; 
      end
   end
 end

 % dbg plot
 if dbgPlot == 'y'
     figure; hold on;
     for k=1:nFace*nPose
        plot(prj(pd1,k), prj(pd2, k), '.g');
     end
     id = 1;
     while id ~= 0
        id = input('highlight id= ');
        styl = input('highlight styl= ');
        offs = (id-1)*nPose;
        for k=1:nPose
            plot(prj(pd1,offs+k), prj(pd2, offs+k), styl);
        end
     end     
 end

⌨️ 快捷键说明

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