📄 projattfaces.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -