Folder=['D:\灰度变换后的图片\person01';'D:\灰度变换后的图片\person02';'D:\灰度变换后的图片\person03';'D:\灰度变换后的图片\person04';'D:\灰度变换后的图片\person05';'D:\灰度变换后的图片\person06';'D:\灰度变换后的图片\person07';'D:\灰度变换后的图片\person08';'D:\灰度变换后的图片\person09';'D:\灰度变换后的图片\person10';

'D:\灰度变换后的图片\person11';'D:\灰度变换后的图片\person12';'D:\灰度变换后的图片\person13';'D:\灰度变换后的图片\person14';'D:\灰度变换后的图片\person15';'D:\灰度变换后的图片\person16';'D:\灰度变换后的图片\person17';'D:\灰度变换后的图片\person18';'D:\灰度变换后的图片\person19';'D:\灰度变换后的图片\person20';

'D:\灰度变换后的图片\person21';'D:\灰度变换后的图片\person22';'D:\灰度变换后的图片\person23';'D:\灰度变换后的图片\person24';'D:\灰度变换后的图片\person25';'D:\灰度变换后的图片\person26';'D:\灰度变换后的图片\person27';'D:\灰度变换后的图片\person28';'D:\灰度变换后的图片\person29';'D:\灰度变换后的图片\person30';

'D:\灰度变换后的图片\person31';'D:\灰度变换后的图片\person32';'D:\灰度变换后的图片\person33';'D:\灰度变换后的图片\person34';'D:\灰度变换后的图片\person35';'D:\灰度变换后的图片\person36';'D:\灰度变换后的图片\person37';'D:\灰度变换后的图片\person38';'D:\灰度变换后的图片\person39';'D:\灰度变换后的图片\person40';];

gifPath = ['\01.JPG';'\02.JPG';'\03.JPG';'\04.JPG';'\05.JPG';'\06.JPG';'\07.JPG';'\08.JPG';'\09.JPG';'\10.JPG';];

persons=40; % 数据库中的人数

pictures=10; %每个人的图像样本数

row=40;

col=45;

ctr=5; %每个人参加训练的样本数

d=8; % 降维后的维数

cts=pictures-ctr; % 每个人参加测试的样本数

ptr=persons*ctr; % 所有参加训练的样本数

pts=persons*cts; % 所有参加测试的样本数

tic

for i=1:persons

for j=1:ctr

img_path=[Folder(i,:),gifPath(j,:)];

img=double(imread(img_path));%读入图像并转双精度

imgg(:,:,pictures*(i-1)+j)=img;

A(:,:,(i-1)*ctr+j)=imgg(:,:,pictures*(i-1)+j); % A 的第三维用作训练样本的序号

end

end

G=zeros(col,col);

for i=1:ptr

G=G+A(:,:,i)'*A(:,:,i); %协方差

end

G=G/ptr;

[V,D]=eig(G);%求特征值D和特征向量V

[ld,ind]=sort(diag(D)); %ld:小到大排一列 ind:对应的索引

ld=ld(end:-1:1); %大到小排列

Ind=ind(end:-1:1);%对应的大到小索引排列

for i=1:d

X(:,i)=V(:,Ind(i));

end

for i=1:ptr

YY(:,:,i)=A(:,:,i)*X;

end

for i=1:persons

for j=(ctr+1):pictures

img_path=[Folder(i,:),gifPath(j,:)];

img=double(imread(img_path));

imgg(:,:,pictures*(i-1)+j)=img;

B(:,:,cts*(i-1)+(j-ctr))=imgg(:,:,pictures*(i-1)+j);

end

end

for i=1:pts

YYT(:,:,i)=B(:,:,i)*X;

end

err=0; %误判个数

Aclass1=zeros(ptr,1); %训练样本的分类

Aclass2=zeros(ptr,1);

Bclass1=zeros(pts,1); %测试样本的分类

Bclass2=zeros(pts,1);

Bresult1=zeros(pts,1);

Bresult2=zeros(pts,1);

for ac=1:ptr

Aclass1(ac)=ceil(ac/ctr); %训练样本的本应属于的类别

Aclass2(ac)=ceil(ac/ctr);

end

for bc=1:pts

Bclass1(bc)=ceil(bc/cts); %测试样本被判别属于的类别

Bclass2(bc)=ceil(bc/cts);

end

for i=1:pts

Dij=zeros(ptr,1); %第i个测试样本到所有训练样本的距离

Tij=zeros(ptr,1);

for j=1:ptr

YDD=YYT(:,:,i)-YY(:,:,j); % 第 i 个测试样本与第 j 个训练样本的各个投影特征向量的差

for k=1:d

Tij(j)=Tij(j)+norm(YDD(:,k)); %差的二范数累加即为两者的欧氏距离

end

end

[Min,IND]=sort(Dij); % 从小到大索引,取最小的那个类别即为结果

[Min,IND]=sort(Tij);

Bresult1(i)=Aclass1(IND(1));

Bresult2(i)=Aclass2(IND(1));

if Bresult2(i)~=Bclass2(i); %&Bresult2(i)~=Bclass2(i)

err=err+1;

end

end

disp('识别率:'),disp(1-(err/(pts+ptr)));

toc

2dpca matlab程序,simulink基于2DPCA的人脸识别相关推荐

  1. 倒立摆的数学模型,matlab程序,simulink,c语言控制,一级倒立摆的控制设计

    本论文主要研究内容 倒立摆装置被公认为自动控制理论中的典型试验设备,也是控制理论教学和科研中不可多得的典型物理模型.本论文的研究旨在完成这样一系列工作: 介绍倒立摆系统控制的研究发展过程和现状:研究单 ...

  2. matlab程序,基于广义benders分解法的综合能源系统优化规划,关键词,综合能源系统规划,Benders分解

    matlab程序,基于广义benders分解法的综合能源系统优化规划,关键词,综合能源系统规划,Benders分解,机会约束规划. ID:5999661483864996小陈代码店

  3. MATLAB程序:基于主从博弈理论的共享储能与综合能源微网优化运行研究

    MATLAB程序:基于主从博弈理论的共享储能与综合能源微网优化运行研究. 提出共享储能背景下微网运营商与用户聚合商间的主从博弈模型,并证明Stackelberg 均衡解的存在性与唯一性. 最后,在 M ...

  4. 基于Python的人脸识别方法

    摘要:得益于计算机硬件技术的进步以及软件算法的不断改进,近些年来人工智能技术得到了前所未有的发展,基于深.度学习的人脸识别技术也已经得到了广泛的应用,特别是在安保.金融等需要安全系数较高的领域.提出了 ...

  5. 《基于子空间的人脸识别》文献笔记

    前记:本人目前研一,刚刚接触这个这个领域,仅想以这种形式记录自己走过的点点滴滴,欢迎大家批评指正. <基于子空间的人脸识别>是程正东,章毓晋编写的,清华大学出版社出版的一本关于人脸识别的书 ...

  6. python人脸识别训练模型_开源 | 基于Python的人脸识别:识别准确率高达99.38%!

    原标题:开源 | 基于Python的人脸识别:识别准确率高达99.38%! 该库使用 dlib 顶尖的深度学习人脸识别技术构建,在户外脸部检测数据库基准(Labeled Faces in the Wi ...

  7. 基于PCA的人脸识别

    基于PCA的人脸识别 实验简介 PCA算法分析 PCA实现具体步骤 构造特征空间 识别 PCA方法的优劣 优势 劣势 实验步骤 训练 测试 计算识别准确率 显示结果 核心代码 分组一 分组二 实验结果 ...

  8. 【CSDN下载】第三期:多AGV调度系统软件、基于PCA的人脸识别系统

    为便于广大开发者对热门资源的下载需求,下载频道专为广大开发者开辟了推荐一周IT优质资源通道,以供开发者参考下载,同时欢迎大家上传优质资源并留言所需的资源,小编会汇总所需,及时奉上所求. 工具安装包系列 ...

  9. 基于Python的人脸识别课堂考勤系统(毕设)

    一个菜鸟搞毕业设计的过程分享,可能对迷茫的你起到一点点作用! 序言 在着手开发项目之前我们一定要对系统进行一个初步的规划,比如系统可以实现什么功能,是否需要开发GUI页面(大部分导师都会让你搞一个,仅 ...

最新文章

  1. D3D11中的硬件反锯齿 SSAA/MSAA/EQAA/CSAA(3)
  2. 乐视电视明明可以降低配置,为什么偏偏要涨价?
  3. 计算机辅助初中英语教学,初中英语CAI课件制作初探
  4. linux at命令关机,Linux at命令定时关机
  5. Oracle中的索引类型
  6. 如何将gif动图分解成png格式?动图分解器如何使用?
  7. 嗖嗖移动营业大厅(Java面向对象编程)
  8. Ceres Solver实现简单的光束法平差
  9. 数据结构——十大排序算法
  10. B树,B+树,树,二叉树,满二叉树,完全二叉树,二叉搜索树,平衡二叉树,
  11. Thinking_2_酸甜苦辣咸的2016
  12. ArcGIS教程:解决裁剪功能输出的数据集为空的情况。
  13. windows隐藏CMD窗口,使jar程序在后台执行
  14. wpf研究之道-grid控件
  15. python代码~小人比心表白
  16. 用计算机探索ppt,信息技术应用 用计算机画函数图象ppt课件配套教案内容
  17. libbpf-tools编译和使用步骤
  18. RC有源滤波器之带通滤波器(四)
  19. Hibernate一对多/多对一关系映射详解及相应的增删查改操作
  20. 【杂叙】北京住房公积金提取

热门文章

  1. JavaScript函数防抖与截流
  2. 程序员vs计算机教师,薪资大PK!教师VS程序员,你想不到的事实!
  3. oracle11g在linux7的静默安装脚本
  4. 介绍几种电路上常用的塑料插接件(1)
  5. 安装CDH出现file /opt/cloudera/parcels/.flood/CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel...does not exist
  6. 三十二个vbs整蛊代码,快去发给你的好朋友
  7. ARM NEON优化5.图像旋转
  8. 什么是跨域问题?跨域解决问题
  9. 文件上传插件 bootstrap-fileinput ,后台使用的C#语言
  10. 在vue.js中实现a标签href tel的打电话功能