资源简介
使用主成分分析的人脸识别,给特征空间降维,从而提高运算效率。
代码片段和文件信息
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个文件信息
- 上一篇:车牌识别MATLAB
- 下一篇:基于Haar分类和五官验证的人脸识别
相关资源
- 基于Haar分类和五官验证的人脸识别
- 特征选择-MATLAB
- MATLAB实现耶鲁人脸库,人脸识别的一
- 基于PCA算法的人脸识别包含人脸库
- 人脸识别MATLAB源码55226
- 基于直方图人脸识别MATLAB程序
- 表情识别 源码Matlab LBP+LPQ SVM PCA
- MATLAB实现人脸识别47134
- 基于PCA算法的人脸识别matlab程序
- matlab toolbox for pca
- pca实现人脸识别算法matlab
- 基于matlab的人脸识别系统
- 人脸超分辨率识别matlab GUI图像处理毕
- PCA+SVM matlab代码 测试通过
- matlab表情识别
- 基于Matlab 直方图Histogram的人脸识别程
- 基于MATLAB的人脸五官识别184027
- 基于神经网络的人脸识别代码
- 基于MATLAB GUI的PCA人脸识别门禁系统
- LFW-a 数据集mat文件
- 稀疏人脸识别
- MATLAB_SRC_人脸识别程序
- 基于PCA和SVM的人脸识别 matlab程序
- PCA LDA LLE各种降维方法Matlab工具箱
- PCANet MATLAB代码
- 基于matlab的人脸识别含源程序.pdf
- 基于PCA的人脸识别MATLAB
- CLBP人脸识别程序及运行结果
- 手写数字识别Matlab代码
- 基于神经网络的人脸识别/检测MATLAB模
评论
共有 条评论