2dpca matlab程序,simulink基于2DPCA的人脸识别
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的人脸识别相关推荐
- 倒立摆的数学模型,matlab程序,simulink,c语言控制,一级倒立摆的控制设计
本论文主要研究内容 倒立摆装置被公认为自动控制理论中的典型试验设备,也是控制理论教学和科研中不可多得的典型物理模型.本论文的研究旨在完成这样一系列工作: 介绍倒立摆系统控制的研究发展过程和现状:研究单 ...
- matlab程序,基于广义benders分解法的综合能源系统优化规划,关键词,综合能源系统规划,Benders分解
matlab程序,基于广义benders分解法的综合能源系统优化规划,关键词,综合能源系统规划,Benders分解,机会约束规划. ID:5999661483864996小陈代码店
- MATLAB程序:基于主从博弈理论的共享储能与综合能源微网优化运行研究
MATLAB程序:基于主从博弈理论的共享储能与综合能源微网优化运行研究. 提出共享储能背景下微网运营商与用户聚合商间的主从博弈模型,并证明Stackelberg 均衡解的存在性与唯一性. 最后,在 M ...
- 基于Python的人脸识别方法
摘要:得益于计算机硬件技术的进步以及软件算法的不断改进,近些年来人工智能技术得到了前所未有的发展,基于深.度学习的人脸识别技术也已经得到了广泛的应用,特别是在安保.金融等需要安全系数较高的领域.提出了 ...
- 《基于子空间的人脸识别》文献笔记
前记:本人目前研一,刚刚接触这个这个领域,仅想以这种形式记录自己走过的点点滴滴,欢迎大家批评指正. <基于子空间的人脸识别>是程正东,章毓晋编写的,清华大学出版社出版的一本关于人脸识别的书 ...
- python人脸识别训练模型_开源 | 基于Python的人脸识别:识别准确率高达99.38%!
原标题:开源 | 基于Python的人脸识别:识别准确率高达99.38%! 该库使用 dlib 顶尖的深度学习人脸识别技术构建,在户外脸部检测数据库基准(Labeled Faces in the Wi ...
- 基于PCA的人脸识别
基于PCA的人脸识别 实验简介 PCA算法分析 PCA实现具体步骤 构造特征空间 识别 PCA方法的优劣 优势 劣势 实验步骤 训练 测试 计算识别准确率 显示结果 核心代码 分组一 分组二 实验结果 ...
- 【CSDN下载】第三期:多AGV调度系统软件、基于PCA的人脸识别系统
为便于广大开发者对热门资源的下载需求,下载频道专为广大开发者开辟了推荐一周IT优质资源通道,以供开发者参考下载,同时欢迎大家上传优质资源并留言所需的资源,小编会汇总所需,及时奉上所求. 工具安装包系列 ...
- 基于Python的人脸识别课堂考勤系统(毕设)
一个菜鸟搞毕业设计的过程分享,可能对迷茫的你起到一点点作用! 序言 在着手开发项目之前我们一定要对系统进行一个初步的规划,比如系统可以实现什么功能,是否需要开发GUI页面(大部分导师都会让你搞一个,仅 ...
最新文章
- D3D11中的硬件反锯齿 SSAA/MSAA/EQAA/CSAA(3)
- 乐视电视明明可以降低配置,为什么偏偏要涨价?
- 计算机辅助初中英语教学,初中英语CAI课件制作初探
- linux at命令关机,Linux at命令定时关机
- Oracle中的索引类型
- 如何将gif动图分解成png格式?动图分解器如何使用?
- 嗖嗖移动营业大厅(Java面向对象编程)
- Ceres Solver实现简单的光束法平差
- 数据结构——十大排序算法
- B树,B+树,树,二叉树,满二叉树,完全二叉树,二叉搜索树,平衡二叉树,
- Thinking_2_酸甜苦辣咸的2016
- ArcGIS教程:解决裁剪功能输出的数据集为空的情况。
- windows隐藏CMD窗口,使jar程序在后台执行
- wpf研究之道-grid控件
- python代码~小人比心表白
- 用计算机探索ppt,信息技术应用 用计算机画函数图象ppt课件配套教案内容
- libbpf-tools编译和使用步骤
- RC有源滤波器之带通滤波器(四)
- Hibernate一对多/多对一关系映射详解及相应的增删查改操作
- 【杂叙】北京住房公积金提取
热门文章
- JavaScript函数防抖与截流
- 程序员vs计算机教师,薪资大PK!教师VS程序员,你想不到的事实!
- oracle11g在linux7的静默安装脚本
- 介绍几种电路上常用的塑料插接件(1)
- 安装CDH出现file /opt/cloudera/parcels/.flood/CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel...does not exist
- 三十二个vbs整蛊代码,快去发给你的好朋友
- ARM NEON优化5.图像旋转
- 什么是跨域问题?跨域解决问题
- 文件上传插件 bootstrap-fileinput ,后台使用的C#语言
- 在vue.js中实现a标签href tel的打电话功能