资源简介

使用主成分分析的人脸识别,给特征空间降维,从而提高运算效率。

资源截图

代码片段和文件信息

function y=mypca()
%%%%%%%%%%%%%%%%%%%%%%%%%PCA算法对人脸图像处理提取主成分程序
path = [‘.\‘];                  % 提取当前目录
%读取图像
numimage=400;                 %40*10=400张人脸
imagepath=[path ‘ORL\ORL001‘ ‘.bmp‘]; %第一张人脸文件的路径及文件名:D:\PCA\ORL\ORL001.bmp
immatrix=imread(imagepath); % 读入第一张人脸文件,构成矩阵immatrix
[mn]=size(immatrix);       % 计算矩阵immatrix的行数m、列数n
DATA = uint8 (rand(m*n numimage)); %随机生成m*n行、numimage列的矩阵,并取uint8
for i=1:numimage
        s1=floor(i/100);   % 取整求第3位
        tem=rem(i100);    % i除以100的余数,取后两位
        s2=floor(tem/10);  % 取第2位
        s3=rem(tem10);    % 取第1位   
        imagepath=[path ‘ORL\ORL‘ int2str(s1) int2str(s2) int2str(s3) ‘.bmp‘]; % 构成图像文件的路径即文件名
        immatrix=imread(imagepath); % 读入每一张人脸文件,构成矩阵immatrix
        imVector=reshape(immatrixm*n1); % 将矩阵immatrix转化为一个列向量,长度为m*n
        DATA(:i)=imVector;   % 将列向量imVector依次加入到DATA矩阵的列中.DATA先随机生成过的  
end

clear i;clear j;
save DATA DATA;  % 保存DATA
mn=mean(double(DATA‘))‘; % 计算DATA的行向量的均值 
save mn mn;              % 保存DATA的行向量的均值 
%image substracted by mean of all train images
DATAzeromean=double(DATA)-repmat(mn1numimage);
save DATAzeromean DATAzeromean;
clear DATA;

L=DATAzeromean‘*DATAzeromean;
[VD]=eig(L);
enginvalue=diag(D);
[enginvalueix]=sort(enginvalue);%按升序排列矩阵元素
ix=flipud(ix);%从上到下翻转矩阵即按降序
V=V(:ix); %对V的特征向量位置调整
facespace=DATAzeromean*V; %脸空间

for t=1:numimage
  facespace(:t)=facespace(:t)/norm(facespace(:t));%Normalisation to unit length
end

subdim=200;
facespace=facespace(:1:subdim);%选择子特征向量的协方差矩阵---facespace是400*200维,即前200个样本
projdata=facespace‘*DATAzeromean;

save projdata projdata;
save facespace facespace;

datareconstruct=facespace*projdata;
fprintf(‘正在保存 Wakesplace中的图片数据\n‘);
save datareconstruct datareconstruct;
for i=1:numimage
    imdata=datareconstruct(:i);
    imdata=reshape(imdatamn);
    imwrite(imdata[‘.\生成的特征脸\‘ int2str(i)  ‘.bmp‘]‘bmp‘);%得到重构图像1.bmp---400.bmp
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2289  2012-12-29 16:31  PCA\mypca.m

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL001.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL002.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL003.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL004.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL005.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL006.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL007.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL008.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL009.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL010.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL011.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL012.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL013.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL014.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL015.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL016.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL017.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL018.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL019.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL020.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL021.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL022.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL023.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL024.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL025.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL026.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL027.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL028.BMP

     文件      11382  1998-06-26 08:53  PCA\ORL\ORL029.BMP

............此处省略379个文件信息

评论

共有 条评论