clear all
clc
close all
% Yale人脸数据库,15个人,每人11幅图像,样本数量15*11。
people_count=15;%类别数
face_count_per_people=11;%每类样本数
%每类训练样本比例,70%时识别正确率为96.67%,设置为75%识别正确率可达100%
training_ratio=.70;
% 能量,即较大特征值之和占所有特征值之和的比例。
energy=0.9;
% 每类训练样本数
training_count=floor(face_count_per_people*training_ratio);
%训练样本数据,每行是一个样本
training_samples=[];
% 训练
for i=1:people_count
for j=1:training_count
img=im2double(imread([sprintf('%03d',i) '\' sprintf('%02d',j) '.jpg']));
img=imresize(img,[10 10]); % 图像缩放至至10*10
%若是彩色图像,则灰度化
if ndims(img)==3
img=rgb2gray(img);
end
training_samples=[training_samples;img(:)'];
end
end
%求取训练样本均值,每行一个样本,每列一类特征
mu=mean(training_samples);
%调用princomp函数
%coeff是主成分系数矩阵,即变换(投影)矩阵
%scores是训练样本投影后的矩阵
%latent是协方差矩阵的特征值,降序排列
%tsquare, which contains Hotelling's T2 statistic for each data point.
[coeff,scores,latent,tsquare]=princomp(training_samples);
%寻找占了energy比例的下标,即主成分就取到这么多维
idx=find(cumsum(latent)./sum(latent)>energy,1);
coeff=coeff(:,1:idx); %取出的主成分系数矩阵
scores=scores(:,1:idx);%训练样本投影矩阵
% 测试
acc_count=0; %计数器
for i=1:people_count
for j=training_count+1:face_count_per_people
img=im2double(imread([sprintf('%03d',i) '\' sprintf('%02d',j) '.jpg']));
img=imresize(img,[10 10]);
if ndims(img)==3
img=rgb2gray(img);
end
%测试样本减去训练样本均值,然后投影,得到投影后的样本表示
score=(img(:)'-mu)*coeff;
%计算测试样本和每个训练样本之间的欧式距离(这儿只计算平方值即可)
%然后利用最近邻分类器对测试样本进行分类
[~,idx]=min(sum((scores-repmat(score,size(scores,1),1)).^2,2));
if ceil(idx/training_count)==i
acc_count=acc_count+1;
end
end
end
%测试样本总数
test_count=(people_count*(face_count_per_people-training_count));
%计算识别率
acc_ratio=acc_count/test_count;
%输出显示
fprintf('测试样本数量:%d,正确识别率:%2.2f%%\n',test_count,acc_ratio*100)
yxkfw
- 粉丝: 82
- 资源: 2万+
最新资源
- 博途S7-1200主站与S7-200从站实现RS485通讯程序 S7-200可以当作一个仪表
- C#、C++分别开发的OPC DA CLIENT软件. 1、枚举服务器名称; 2、连接服务器以后枚举出TAG; 3、根据TAG名称自动读取服务器数据; 4、图片内有OPC SERVER和CLIENT实
- python-workspace.zip.005
- 龙门上下料样本程序,四轴 用台达AS228T和台达触摸屏编写 注意软件是用台达新款软件ISPSOFT ,借鉴价值高,程序有注释
- 一款window下的串口监视抓包工具
- 欧姆龙CP1H与3台力士乐VFC-x610变频器通讯程序 功能:原创程序,可直接用于现场程序 欧姆龙CP1H的CIF11通讯板,实现对3台力士乐VFC-x610变频器 设定频率,控制正反转,读取实际
- dp111113333
- CV-密集人群图像数据集(5800张图片).rar
- 福特汽车主观评价规范,性能开发参考,英文原版直译,评价条目、规则描述非常细致 包含平顺舒适性,转向,操稳,NVH,制动,加速感,驾驶性等等性能,并详细描述了评价的准备工作 评价条目细分至第四级,共
- 三菱FX3S两轴标准程序,XZ两轴,包含轴点动,回零,相对与绝对定位,只要弄明白这个程序,就可以非常了解整个项目的程序如何去编写,从哪里开始下手,可提供程序问题解答,程序流程清晰明了,注释完整
- MATLAB代码:考虑P2G与碳捕集机组的多能微网低碳经济调度 关键词:碳交易 阶梯碳交易 碳捕集 多能微网 低碳调度 仿真平台:MATLAB+yalmip+cplex 主要内容:代码主要做的是一个
- 本程序采用matlab编写,主要是实现电流注入型牛拉法 除此之外,本人还编写了很多种关于潮流计算的程序,主要有牛拉法,前推回代法,以还有相和三相潮流计算程序
- 智能门锁架构图,供大家参考
- 三菱FX3U六轴标准程序,程序包含本体3轴控制,扩展3个1PG定位模块,一共六轴 程序有轴点动控制,回零控制,相对定位,绝对定位 另有气缸数个,一个大是DD马达控制的转盘,整个是转盘多工位流水作业
- 批量登录到远程Linux服务器检查服务器时间差的shell
- MATLAB电动车七自由度整车模型 MATLAB Simulink电动车转弯制动abs模型asr转弯制动防抱死abs模型+模糊控制算法+七自由度整车模型+纵向运动+侧向运动+横摆运动+四轮魔术公式+四
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈