【人脸二维码】基于matlab主成分分析的人脸二维码识别系统【源码7期】

一、简介

基于matlab主成分分析的人脸二维码识别系统,社会的高速发展,使得人脸识别技术在身份信息认证方面迅速发展与成熟,本文提出一个新的思想,将先进的人脸识别技术与当今应用最广泛的二维码技术相结合,以达到快速认证身份信息的目的。本文基于主成分分析技术,将获取的人脸图像进行主成分信息提取。降维后的人脸数据实现数据到二维码的转换。之后再识别二维码译成人脸数据,最后利用MATLAB重构人脸图像来达到人脸身份信息认证的目的

二、部分源码

clear all
close all;
Img = imread('01.BMP');
sz = size(Img);
figure;imshow(Img,[]); title('人脸图像');
Construct_PCA_DataBase();
f = GetFaceVector (Img) ;
f = f(1:300);
%生成二维码
Im = QrGen(f);
figure;imshow(Im, []);title('人脸二维码');

function Construct_PCA_DataBase()
%pca算法,构建PCA数据库,计算出xmean,sigam和eigen的值

%如果存在模型,
if exist(fullfile(pwd, '人脸库/model.mat'), 'file')
    return;
end
%分类存储信息,类别数目和人脸数目
classNum = 40;
sampleNum = 10;
hw = waitbar(0, '构建PCA数据库进度:', 'Name', 'PCA人脸识别');
rt = 0.1;
waitbar(rt, hw, sprintf('构建PCA数据库进度:%i%%', round(rt*100)));
allsamples = Get_Samples(classNum, sampleNum);
rt = 0.3;
waitbar(rt, hw, sprintf('构建PCA数据库进度:%i%%', round(rt*100)));
samplemean = mean(allsamples);
xmean = Get_StandSample(allsamples, samplemean);
rt = 0.5;
waitbar(rt, hw, sprintf('构建PCA数据库进度:%i%%', round(rt*100)));
sigma = xmean*xmean'; 
[v, d] = eig(sigma);
d1 = diag(d);
rt = 0.7;
waitbar(rt, hw, sprintf('构建PCA数据库进度:%i%%', round(rt*100)));
dsort = flipud(d1);
vsort = fliplr(v);
p = classNum*sampleNum;
base = xmean' * vsort(:,1:p) * diag(dsort(1:p).^(-1/2));
rt = 0.9;
waitbar(rt, hw, sprintf('构建PCA数据库进度:%i%%', round(rt*100)));
save(fullfile(pwd, '人脸库/model.mat'), 'base', 'samplemean');
rt = 1;
waitbar(rt, hw, sprintf('构建PCA数据库进度:%i%%', round(rt*100)));
delete(hw);
msgbox('构建PCA数据库完成!', '提示信息', 'Modal');

三、运行结果

四、matlab版本

MATLAB R2019a

五、学习与交流

文中不足之处请大家多多指教,学习与交流可以联系企鹅:3752243968

文中部分源码仅供参考,若需要全部代码可以私信(有偿)

  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值