资源简介
基于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程序m文件
- matlab二代身份证文字数字切割识别
- MATLAB代码经典功率谱估计Welch法协方差
- matlab实现的CCV颜色聚合向量
- 《MATLAB电机仿真精华50例》源代码
- 求解多旅行商(MTSP)的遗传算法的
- 基本粒子群算法,MATLAB文件的M文件编
- 数字图像处理作业canny边缘检测坎尼边
- 数字图像处理 MATLAB 大作业 代码及其
- 基于BP神经网络的无线传感器定位算法
- 字符识别matlab源代码
- QR法求解特征值特征向量(MATLAB)课程
- B样条插值的matlab程序
- 群速度色散的matlab仿真
- 双聚类(Bi-clustering)Matlab工具箱
- 基于RSSI强度、指纹库仿真代码,主要
- 圆拟合matlab程序,以及圆心 半径的确
- matlab 三角网格读取
- 基于matlab的BPSK调制解调
- FBMC 的 AWGN 信道仿真(matlab)
- LBP四种特征提取算法
- matlab开发-GMRESArnoldi
- matlab开发-MuellerStokesJonesCalculus
- MATLAB身份证号码识别系统GUI论文.zip
- 基于MATLAB的心电信号分析及滤波
- 计算图像每个像素邻域方差的matlab程
- matlab实现牛顿-拉夫逊法电力系统潮流
- 八数码问题的MATLAB实现启发式
- 异步电机降压启动matlab仿真
- 最全最新的matlab----findpeaks代码运用
评论
共有 条评论