资源简介
pca特征降维,gabor小波变换,人脸识别的matlab程序
代码片段和文件信息
clear all;
tic %秒表定时器
f0=0.4;
allsamples=[];
for i=1:40
for j=1:5
a=imread(strcat(‘E:\orl\‘‘orl_0‘num2str(i)‘_‘‘00‘num2str(j)‘.bmp‘)); %从图像文件中读取图像数据 字符串连接
b=[];
for theta = [0pi/8pi/4pi*3/8pi/2pi*5/8pi*3/4pi*7/8];%用弧度0pi/4pi/2pi*3/4
x = 0;
for m = linspace(-8811) %在-8和8之间产生11个点的线性空向量
x = x + 1;
y = 0;
for n = linspace(-8811)
y = y + 1;
z(yx)=computer(mnf0theta);
end
end
filtered = filter2(za‘valid‘); %用二维Gabor滤波器对读入的人脸进行滤波,得到的只取那些非补零序列计算得到的相关序列,其长度小于I
f = abs(filtered); %取绝对值或复数模
[cs]=wavedec2(f3‘db1‘);
a3=appcoef2(cs‘db1‘3);
b=[b;a3] ;
end
d=b(1:104*11) ;
allsamples=[allsamples;d]; %所有样本
end
end
samplemean=mean(allsamples);%求阵列的均值 得到了均值行向量 其每个元素为矩阵allsamples相应列的均值 这时就有200列
for i=1:200
xmean(i:)=allsamples(i:)-samplemean; %所有样本-样本均值
end;
%获取特征植及特征向量
sigma=xmean*xmean‘; %协方差矩阵
[v d]=eig(sigma); %求特征值和特征向量 v:特征值向量 d:特征值矩阵
d1=diag(d); %把特征值矩阵d主对角线上的元素组成一个列矩阵d1
%按特征值大小以降序排列
dsort=flipud(d1); %矩阵上下翻转
vsort=fliplr(v); %矩阵左右翻转
%以下选择90%的能量
dsum=sum(dsort); %阵列元素求和 即所有特征值求和
dsum_extract=0;
p=0;
while(dsum_extract/dsum<0.96)
p=p+1;
dsum_extract=sum(dsort(1:p));
end %选择90%的能量
i=1;
% (训练阶段)计算特征脸形成的坐标系
base = xmean‘ * vsort(:1:p) * diag(dsort(1:p).^(-1/2));
allcoor=allsamples*base;
accu = 0;
%测试过程
for i=1:40
for j=6:10%读入测试图像
a=imread(strcat(‘E:\orl\‘‘orl_0‘num2str(i)‘_‘‘00‘num2str(j)‘.bmp‘));
b=[];
for theta = [0pi/8pi/4pi*3/8pi/2pi*5/8pi*3/4pi*7/8];%用弧度0pi/4pi/2pi*3/4
x = 0;
for m = linspace(-8811) %在-8和8之间产生11个点的线性空向量
x = x + 1;
y = 0;
for n = linspace(-8811)
y = y + 1;
z(yx)=computer(mnf0theta);
end
end
filtered = filter2(za‘valid‘); %用二维Gabor滤波器对读入的人脸进行滤波,得到的只取那些非补零序列计算得到的相关序列,其长度小于I
f = abs(filtered); %取绝对值或复数模
[cs]=wavedec2(f3‘db1‘);
a3=appcoef2(cs‘db1‘3);
b=[b;a3];
end
b=double(b);
e=b(1:104*11);
tcoor=e*base;
for k=1:200
mdist(k)=norm(tcoor-allcoor(k:)); %求矩阵的范数
end; %每一个测试图像的特征脸与训练图像相对比
%三阶近邻
[distindex2]=sort(mdist); %按升序排列元素
class1=floor( (index2(1)-1)/5 )+1; %floor:朝负无穷大方向取整
class2=floor((index2(2)-1)/5)+1;
class3=floor((index2(3)-1)/5)+1;
if class1~=class2 && class2~=class3
class=class1;
elseif class1==class2
cla
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3646 2013-04-10 13:30 pca&gabor.m
相关资源
- 人脸心率检测
- HoG SVm 人脸识别方
- matlab结课大作业人脸识别是否戴口罩
- matlab 人脸识别.rar
- 人脸识别matlab代码
- LDA线性判别分析人脸识别MATLAB代码/
- LBP-DBN人脸识别matlab代码
- 基于MATLAB的人脸五官识别
- 基于BP算法的人脸识别程序MATLAB
- PCA 和欧氏距离方法设计的人脸识别
- 基于PCA算法实现人脸识别完整代码,
- 基于matlab人脸表情识别
- Matlab PCA+SVM人脸识别包含GUI界面设计
- MATLAB中实现Gabor滤波器
- log gabor 滤波器matlab程序
- matlab读取obj人脸模型
- 稀疏表示分类算法SRC在ORL人脸库上的
- 基于adaboost和深度学习网络的人脸表情
- ELM 极限学习机matlab以及Python程序
- 人脸定位跟踪程序(face tracking)
- 提取嘴部的人脸识别
- FaceRec 人脸识别 PCA和SVM 人脸识别算法
- matlab程序实现的人脸表情识别
- CNN人脸检测代码
- face--recognition 人脸识别
- 卷积神经网络实现人脸识别
- Gabor Gabor小波变换的matlab实现
- adaboost 基于adaboost的人脸识别程序
- PCALDA PCA+LDA经典人脸识别算法
- PCA_SVM 此方法采用经典的PCA对人脸图像
评论
共有 条评论