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

代码片段和文件信息
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分类和五官验证的人脸识别
相关资源
- matlab人脸识别和特征提取
- 高光谱图像pca分析特征提取
- pca源码matlab
- matlab人脸识别217995
- PCA人脸识别Eigenface特征脸Matlab
- RPCA图像去噪算法
- MATLAB 对iris数据集进行PCA
- 基于KL变换的人脸识别 matlab
- 遥感影像融合_数字图像处理的matlab程
- 基于Matlab行人检测系统
- 互信息 matlab
- 基于TE过程的PCA程序matlab
- Face Recognition with KNN in MATLAB(12017108
- 人脸识别yale数据.mat格式
- 基于PCA和SVM的人脸识别.zip
- 基于SVD分解和最近邻算法的高维人脸
- MATLAB人脸识别考勤系统摄像头,记录
- PCA算法实现人脸识别基于matlab GUI界面
- 基于matlab的人脸识别271850
- 2D2DPCA人脸识别matlab代码/ORL库
- PCA人脸识别MATLAB代码/ORL库
- matlab结课大作业人脸识别是否戴口罩
- PCA人脸识别论文附MATLAB程序
- KPCA matlab实现
- 应用matlab计算人脸识别率
- 个人收集的人脸识别经典算法源码
- 基于K-L变换的人脸识别系统
- 基于matlab的人脸识别源代码235297
- 基于PCA使用Yale人脸数据库的人脸识别
- 降维技术matlab工具箱
评论
共有 条评论