基于ORL人脸库PCA特征提取之“基于主分量人脸重建”

1.approx()函数实现重建

function [ xApprox ] = approx( x, k )
% 用 k 个主成分分量来近似(重建)样本 x
%
% 输入:x --- 原特征空间中的样本,被近似的对象
%       k --- 近似(重建)使用的主分量数目
%
% 输出:xApprox --- 样本的近似(重建)

% 读入 PCA 变换矩阵 V 和 平均脸 meanVec
load pcaMat.mat

nLen = length(x);

xApprox = meanVec;

for ii = 1:k
    xApprox=xApprox+((x-meanVec)*V(:,ii))*V(:,ii)';
end

2.显示重建的图片

理论上,reshape那段代码,可以直接用封装成displayImage程序。

注,load 相应的数据。

load MatFaceMat1.mat%载入样本矩阵
load pcaMat.mat;
x = FaceContainer(1,:);


FaceImg1=reshape(x,112,92);
FaceImg1=uint8(FaceImg1);
subplot(2,2,4);
imshow(FaceImg1);%显示原图

[pcaA V]= fastPCA1(FaceContainer,200);%采用fastPCA进行特征提取,常见fastPCA程序

xApprox = ORLFaceChongJian(x,50);
% displayImage(xApprox,112,92);
FaceImg4=reshape(xApprox,112,92);
FaceImg4=uint8(FaceImg4);
subplot(2,2,3);
imshow(FaceImg4);

xApprox = ORLFaceChongJian(x,100);
FaceImg2=reshape(xApprox,112,92);
FaceImg2=uint8(FaceImg2);
subplot(2,2,2);
imshow(FaceImg2);

xApprox = ORLFaceChongJian(x,200);%200个主分量的重建
% displayImage(xApprox,112,92);
FaceImg3=reshape(xApprox,112,92);
FaceImg3=uint8(FaceImg3);
subplot(2,2,1);
imshow(FaceImg3);

参考:

  1. blog
  2. blog;
  3. 数字图像处理与机器视觉Visual+C与Matlab实现配套代码(张铮版);
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rosefunR

你的赞赏是我创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值