全文预览

基于K-L变换的人脸识别(精)

上传者:徐小白 |  格式:doc  |  页数:9 |  大小:0KB

文档介绍
,41-i); end dd=0; for j=1:40 dd=dd+d(j,j);% 计算所有特征值之和 end z=80; for a=1:40 s=0; for j=1:a s=s+d(j,j); end ifs/dd>=0.99&&a<=z% 求出占特征值总和的前 z个特征值 z=a; end end W=zeros(10304,z); for j=1:z W(:,j)=A*V(:,j)*1/sqrt(d(j,j));% 此时的 W是特征脸空间 end P=zeros(z,40); for i=1:40 P(:,i)=W'*A(:,i);% 将每一幅人脸与平均脸的差值矢量投影到特征脸空间 end sita1=0; for i=1:40 for j=1:40 ss=norm(P(:,i)-P(:,j)); ifss>sita1 sita1=ss; end end end sita=0.5*sita1; img01=imread('C:\Users\Administrator\Desktop\renlianCS\s4\10.pgm','pg m'); I=zeros(10304,1); for j=1:10304 I(j,1)=img01(j); end P01=W'*(I-XP); P02=W*P01+XP; sigma=norm(I-P02); sigma1=zeros(z,1); for k=1:40 sigma1(k,1)=norm(P01-P(:,k)); end [sigma2,z0]=min(sigma1); ifsigma>=sita fprintf(' 输入图像不是人脸图像'); else ifsigma2>=sita fprintf(' 输入图像包含未知人脸'); else fprintf(' 输入图像为库中的第%d个人脸',z0); end end

收藏

分享

举报
下载此文档