资源简介
基于KL变换的人脸识别 matlab程序

代码片段和文件信息
clear;
clc;
N=40;%样本大小为40人
X=zeros(92*112N);
i=1;
ADDR=‘F:\ORLrenlian104\‘;
for im=1:N
img1=imread([ADDRnum2str(im)‘.bmp‘]);
for j=1:10304
X(jim)=img1(j);
end
end
SUM=sum(X‘);
XP=SUM/N;
XP=XP‘;
A=zeros(10304N);
for i=1:N
A(:i)=X(:i)-XP;
end
B=A‘*A;
[VV p]=eig(B);%下面需要将vi和di重新排列,保证按从大到小
d=zeros(NN);
V=zeros(NN);
for i=1:N
d(ii)=p(N+1-iN+1-i);
V(:i)=VV(:N+1-i);
end
dd=0;
for j=1:N
dd=dd+d(jj);%计算所有特征值之和
end
z=N;
for a=1:N
s=0;
for j=1:a
s=s+d(jj);
end
if s/dd>=0.99&&a<=z%求出占特征值总和的前z个特征值
z=a;
end
end
W=zeros(10304z);
for j=1:z
W(:j)=A*V(:j)*1/sqrt(d(jj));%此时的W是特征脸空间
end
P=zeros(zN);
for i=1:N
P(:i)=W‘*A(:i);%将每一幅人脸与平均脸的差值矢量投影到特征脸空间
end
sita1=0;
for i=1:N
for j=1:N
ss=norm(P(:i)-P(:j));
if ss>sita1
sita1=ss;
end
end
end
sita=0.5*sita1;
ADDR1=‘F:\ORLceshi\‘;
im=input(‘请输入待识别图像编号(1--10):‘);
img01=imread([ADDR1num2str(im)‘.bmp‘]);
subplot(121);
imshow(img01);
title(‘待识别图像‘)%输出待识别图像
subplot(122);
I=zeros(103041);
for j=1:10304
I(j1)=img01(j);
end
P01=W‘*(I-XP);
P02=W*P01+XP;%每幅图可以用特征脸的加权来表示
sigma=norm(I-P02);
sigma1=zeros(z1);
for k=1:N
sigma1(k1)=norm(P01-P(:k));
end
[sigma2z0]=min(sigma1);
if sigma>=sita
tit=sprintf(‘识别输出:输入图像不是人脸图像‘);
else
if sigma2>=sita
tit=sprintf(‘识别输出:输入图像包含未知人脸最相似为第%d个‘z0);
else
tit=sprintf(‘识别输出:输入图像为库中的第%d个人脸‘z0);
end
end
people1=zeros(103041);
for i=1:z
people1=people1+P(iz0)*W(:i);%每幅图可以用特征脸的加权来表示
end
people1=people1+XP;
aver=zeros(11292);
for i=1:92
for y=1:112
aver(yi)=people1((i-1)*112+y1);%将用加权值表示的图像转换为正常输出格式
end
end
imshow(aver/250);
title(tit)%输出识别结果
figure;
for x=1:z
subplot(57x);
for i=1:92
for y=1:112
aver(yi)=W((i-1)*112+yx);% 输出前z个特征脸
end
end
imshow((aver+0.01)*50);
end
subplot(574)
title(‘前34个特征脸主成份‘)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2386 2012-11-05 21:03 K-L人脸识别\e.m
文件 11384 2010-03-24 19:45 K-L人脸识别\ORLceshi\1.bmp
文件 11384 2010-03-25 19:23 K-L人脸识别\ORLceshi\10.bmp
文件 11384 2010-03-25 18:54 K-L人脸识别\ORLceshi\2.bmp
文件 11384 2010-03-25 18:57 K-L人脸识别\ORLceshi\3.bmp
文件 11384 2010-03-25 19:01 K-L人脸识别\ORLceshi\4.bmp
文件 11384 2010-03-25 19:04 K-L人脸识别\ORLceshi\5.bmp
文件 11384 2010-03-25 19:06 K-L人脸识别\ORLceshi\6.bmp
文件 11384 2010-03-25 19:07 K-L人脸识别\ORLceshi\7.bmp
文件 11384 2010-03-25 19:19 K-L人脸识别\ORLceshi\8.bmp
文件 11384 2010-03-25 19:22 K-L人脸识别\ORLceshi\9.bmp
文件 11384 2010-03-24 19:05 K-L人脸识别\ORLrenlian104\1.bmp
文件 11384 2010-03-25 19:23 K-L人脸识别\ORLrenlian104\10.bmp
文件 11384 2010-03-24 19:42 K-L人脸识别\ORLrenlian104\11.bmp
文件 11384 2010-03-25 18:53 K-L人脸识别\ORLrenlian104\12.bmp
文件 11384 2010-03-25 18:56 K-L人脸识别\ORLrenlian104\13.bmp
文件 11384 2010-03-25 19:00 K-L人脸识别\ORLrenlian104\14.bmp
文件 11384 2010-03-25 19:04 K-L人脸识别\ORLrenlian104\15.bmp
文件 11384 2010-03-25 19:05 K-L人脸识别\ORLrenlian104\16.bmp
文件 11384 2010-03-25 19:07 K-L人脸识别\ORLrenlian104\17.bmp
文件 11384 2010-03-25 19:20 K-L人脸识别\ORLrenlian104\18.bmp
文件 11384 2010-03-25 19:22 K-L人脸识别\ORLrenlian104\19.bmp
文件 11384 2010-03-25 18:55 K-L人脸识别\ORLrenlian104\2.bmp
文件 11384 2010-03-25 19:23 K-L人脸识别\ORLrenlian104\20.bmp
文件 11384 2010-03-24 19:44 K-L人脸识别\ORLrenlian104\21.bmp
文件 11384 2010-03-25 18:54 K-L人脸识别\ORLrenlian104\22.bmp
文件 11384 2010-03-25 18:56 K-L人脸识别\ORLrenlian104\23.bmp
文件 11384 2010-03-25 19:01 K-L人脸识别\ORLrenlian104\24.bmp
文件 11384 2010-03-25 19:04 K-L人脸识别\ORLrenlian104\25.bmp
文件 11384 2010-03-25 19:06 K-L人脸识别\ORLrenlian104\26.bmp
............此处省略28个文件信息
- 上一篇:粒度端元分析的matlab程序m文件
- 下一篇:直线匹配程序
相关资源
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
- k近邻算法matlab实现
评论
共有 条评论