www.gusucode.com > matlab编程人脸识别程序 > matlab编程人脸识别程序/程序/EigenfaceCore.m
function [m, A, Eigenfaces,D] = EigenfaceCore(T) %%%求样本的平均向量 m = mean(T,2); % Computing the average face image m = (1/P)*sum(Tj's) (j = 1 : P) Train_Number = size(T,2); %%%%计算每个样本与平均向量的差向量 A = []; for i = 1 : Train_Number temp = double(T(:,i)) - m; %计算每个样本的减去平均人脸 A = [A temp]; % 合成一个N*N矩阵 end %%%%%%%%%%%%%%%%%%%%%%%% 求解特征值和特征向量 L = A'*A; %.计算协方差矩阵 [V D] = eig(L); %.求特征向量和特征 % 选取特征向量 L_eig_vec = []; for i = 1 : size(V,2) if( D(i,i)>1 ) L_eig_vec = [L_eig_vec V(:,i)]; end end % 降维 Eigenfaces = A * L_eig_vec; % 特征脸获取