-
2022-02-21 13:05:57
文件大小:76M
代码行数:40行(主程序)
开发环境:Matlab2016、2018、2020
下载地址:点击下载
简要概述:基于MATLAB实现PCA人脸识别
PCA,即主成分分析,是一种数据降维的方法,也是一种古老而经典的人脸识别的算法。理解PCA 算法的原理和步骤,对我们的思维启发还是很有帮助的,详细的数学原理可以参考的
PCA 的数学原理。虽然说在众多的人脸识别中,PCA 是较简单的,但是要想清楚了解 PCA人 脸识别的详细步骤和细节还是不容易的,尤其是对初学者而言。下面首先我详细介绍一下 PCA 人脸识别的步骤,在介绍具体实现过程。
更多相关内容 -
LDA+PCA人脸识别matlab程序_人脸识别_matlab
2022-04-14 22:06:45资源名:LDA+PCA人脸识别matlab程序_人脸识别_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手... -
PCA人脸识别matlab代码
2017-11-06 16:17:32完整的利用PCA实现人脸识别分类的代码,包括测试数据集,数据集归数据集原作者所有,用户仅可用来测试。 -
PCA人脸识别代码MATLAB可直接运行
2018-11-30 20:57:02基于MATLAB的PCA人脸识别实现博客中的源代码和数据集,都压缩在一个文件夹中,可直接运行 -
【图像识别】基于ORL数据库的PCA人脸识别系统matlab源码.md
2021-08-18 10:21:49【图像识别】基于ORL数据库的PCA人脸识别系统matlab源码.md -
pca人脸识别MATLAB
2018-10-27 09:05:37前几天上数字图像处理的时候学习了PCA人脸识别,趁热打铁,做一些学习记录。PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取... -
基于PCA算法人脸识别的matlab实现.pdf
2021-07-10 10:31:54基于PCA算法人脸识别的matlab实现.pdf -
PCA人脸识别MATLAB代码/ORL库
2018-04-24 19:40:57使用PCA算法对ORL的人脸库进行降维,得到主元向量与特征脸图像,可下载运行,可设置特征维度比较识别效果与图像重建效果 -
基于PCA 人脸识别/人脸识别算法/人脸检测程序源码MATLAB ELM+PCA人脸识别 PCA人脸识别matlab代码 基于PCA...
2022-03-18 13:19:531、基于PCA的人脸识别代码 2、MATLAB ELM+PCA人脸识别 2、基于PCA的人脸识别(matlab)(采用PCA...5、PCA人脸识别matlab代码(包括测试,集归) 6、PCA-SVM人脸识别代码(采用PCA进行人脸特征脸的提取,基于osu-svm进1、基于PCA的人脸识别代码
2、MATLAB ELM+PCA人脸识别
2、基于PCA的人脸识别(matlab)(采用PCA算法进行人脸识别,通过抽取人脸的主要成
分,构成特征脸空间,识别时将测试图像投影到此空间,得到一组投影系数,通过与训
练样本库中的人脸图像比较进行识别选择最佳匹配人脸)
3、OpenCV的PCA人脸识别
4、PCA+GUI的人脸识别程序matlab
5、PCA人脸识别matlab代码(包括测试,集归)
6、PCA-SVM人脸识别代码(采用PCA进行人脸特征脸的提取,基于osu-svm进行分类,采用
的数据集是ORL,识别正确率可达93%。资源包括代码,osu-svm工具箱,实验保存的数
据以及对程序的详细说明)
7、pca人脸识别
8、Haar人脸检测+SVM+PCA人脸识别
9、基于PCA的人脸识别matlab代码
10、基于pca实现人脸识别matlab代码(有较好的识别效果)
11、pca的人脸识别程序
12、PCA人脸识别定位(matlab代码)
13、PCA人脸识别,GUI界面(对ORL人脸库的PCA人脸识别,内涵11个m文件以及一个结
果演示的Word。运行facegui.m可以直接运行,无需任何修改。这里使用了GUI界面,功能
是查看识别成功率以及图片的识别)
14、基于PCA的人脸识别代码(MATLAB版)
15、Matlab PCA+SVM人脸识别(包含GUI界面设计)
16、基于PCA算法的人脸识别
17、基于PCA与SVM的人脸识别matlab代码
18、基于PCA的人脸识别(采用PCA算法确定一个子空间,最后使用最小距离法进行识别,
并用matlab实现)
19、基于PCA和BP神经网络的人脸识别(通过pca算法进行特征提取,再用bp神经网络进
行分类,最后计算出识别率)
20、PCA人脸识别Eigenface’特征脸Matlab
21、EBGM,PCA等四种不同的人脸识别算法
22、PCA和LDA人脸识别matlab代码(最紧邻分类器)
23、基于PCA的人脸识别MATLA B实现及GUI设计
24、ORL人脸库的PCA人脸识别,GUI界面matlab
25、pca的人脸识别程序matlab
26、PCA算法实现人脸识别(基于matlab GUI界面)
27、基于PCA-HOG的人体检测代码-包括训练,PCA降维,线性、高斯检测c++ -
基于PCA人脸识别Matlab代码(毕设必备)
2020-06-29 22:30:55基于PCA人脸识别,首先对训练人脸库进行的某个人脸特征提取;根据提取的特征,在测试人脸库中检索出训练人脸库的人脸。 -
PCA人脸降维matlab实现完整代码
2020-05-16 22:34:52(如果对你有帮助记得点赞分享)数据集和详细介绍见博客:https://blog.csdn.net/weixin_43863744/article/details/106062212 -
实验报告——PCA人脸识别.docx
2022-01-22 22:34:08实验报告——PCA人脸识别.docx -
matlab实现基于PCA的人脸识别算法
2018-05-23 15:39:58基于PCA的人脸识别算法,matlab实现,使用的是ORL数据库,需要配合使用 -
基于PCA算法人脸识别的MATLAB实现.pdf
2021-06-28 12:08:51基于PCA算法人脸识别的MATLAB实现.pdf -
使用PCA和KNN的人脸识别:使用PCA和KNN的人脸识别-matlab开发
2021-05-29 11:45:25这里的文件是: (1) load_data:从face_images.mat和nonface_images.mat加载数据face_images.mat 文件应包含: - train_imgs:包含 N 个测试人脸图像的 NxMxL 张量。 每个图像都是 MxL 像素(灰度)。 - train_ids:... -
基于PCA的人脸识别(matlab)
2017-11-30 23:43:10采用PCA 算法进行人脸识别,通过抽取人脸的主要成分,构成特征脸空间,识别时 将测试图像投影到此空间,得到一组投影系数,通过与训练样本库中的人脸图像比较进行识别选择最佳匹配人脸。 采用matlab编程,以及GUI... -
【人脸识别】基于 Gabor+SV和PCA+SVM实现人脸识别matlab源码含 GUI.md
2021-08-05 23:18:42【人脸识别】基于 Gabor+SV和PCA+SVM实现人脸识别matlab源码含 GUI. -
基于MATLAB GUI的PCA人脸识别门禁系统
2018-06-28 13:37:04用PCA算法实现的人脸识别系统,算法经过ORL人脸库验证了有效性,上传的这个代码可以自己构建人脸库,采集摄像头数据实时进行人脸识别,不足的是考勤数据导出部分的程序没有写,MATLAB当初只是用来做算法验证,数据... -
pca人脸识别MATLAB程序
2014-10-20 09:50:33包含样本数据库和测试数据库,可以运行,识别率很高,并有清晰的解释,很容易懂,适合刚入门的学习 -
【人脸识别】基于matlab PCA+LDA人脸识别【含Matlab源码 680期】.zip
2021-11-06 09:52:52完整代码,可直接运行 -
完整版 PCA人脸识别代码MATLAB可直接运行.rar
2019-12-30 16:03:37亲测好用,挺不错的资源,大家快来下载吧!挺有用的!需要的话可以来下载哦!基于MATLAB的PCA人脸识别实现博客中的源代码和数据集,都压缩在一个文件夹中,可直接运行 -
pca人脸识别matlab代码
2014-05-06 19:18:42pca人脸识别的matlab代码,已经测试过了,能够正常运行。 -
【图像识别】基于主成分分析PCA实现人脸识别matlab代码
2021-11-07 22:06:46讨论了统计主成分分析法(Principal Component Analysis,PCA)在人脸识别中的应用.PCA是基于统计的方法,可以对人脸库数据起到降低维数,去除相关性等作用.通过Kauhunen-Loeve变换(K—L变换)将人脸库变换到新的坐标系,...1 简介
人脸识别是生物特征识别和人工智能领域特别重要的课题之一.讨论了统计主成分分析法(Principal Component Analysis,PCA)在人脸识别中的应用.PCA是基于统计的方法,可以对人脸库数据起到降低维数,去除相关性等作用.通过Kauhunen-Loeve变换(K—L变换)将人脸库变换到新的坐标系,得到人脸特征子空间,然后将待测人脸图像投影到特征子空间,最后利用2-范数距离分类器进行分类,从而达到识剐的目的.最后利用人脸库对其进行了测试.
2 部分代码
%%Using Eigen vectors,Matrix,Normalization of Image & Matrix comparison. % Face recognition clear all close all clc % To Take number of images on your training set. M=20; %Chosen std and mean. %It can be any number that it is close to the std and mean of most of the images. um=100; ustd=80; %read and show images(here pgm format); S=[]; %img matrix figure(1); for i=1:M str=strcat(int2str(i),'.pgm'); %concatenates two strings that form the name of the image eval('img=imread(str);'); subplot(ceil(sqrt(M)),ceil(sqrt(M)),i) imshow(img) if i==3 title('Image Data set','fontsize',18) end % drawnow; [irow icol]=size(img); % get the number of rows (N1) and columns (N2) temp=reshape(img',irow*icol,1); %creates a (N1*N2 x1 matrix S=[S temp]; %X is a N1*N2xM matrix after finishing the sequence %this is our S end %Here we change the mean and std of all images. We normalize all images. %This is done to reduce the error due to lighting conditions. for i=1:size(S,2) temp=double(S(:,i)); m=mean(temp); st=std(temp); S(:,i)=(temp-m)*ustd/st+um; end %show normalized images %figure(2); %for i=1:M % str=strcat(int2str(i),'.jpg'); % img=reshape(S(:,i),icol,irow); % img=img'; % eval('imwrite(img,str)'); % subplot(ceil(sqrt(M)),ceil(sqrt(M)),i) % imshow(img) % drawnow; % if i==3 % title('Normalized Image Data Set','fontsize',18) % end %end %mean image; m=mean(S,2); %obtains the mean of each row instead of each column tmimg=uint8(m); %converts to unsigned 8-bit integer. Values range from 0 to 255 img=reshape(tmimg,icol,irow); %takes the N1*N2x1 vector and creates a N2xN1 matrix img=img'; %creates a N1xN2 matrix by transposing the image. figure(3); imshow(img); title('Mean Image','fontsize',18) % Change image for manipulation ImgMan=[]; % A matrix for i=1:M temp=double(S(:,i)); ImgMan=[ImgMan temp]; end %Covariance matrix C=A'A, L=AA' A=ImgMan'; L=A*A'; % vv are the eigenvector for L % dd are the eigenvalue for both L=ImgMan'*ImgMan and C=ImgMan*ImgMan'; [vv dd]=eig(L); % Sort and eliminate those whose eigenvalue is zero v=[]; d=[]; for i=1:size(vv,2) if(dd(i,i)>1e-4) v=[v vv(:,i)]; d=[d dd(i,i)]; end end %sort, will return an ascending sequence [B index]=sort(d); ind=zeros(size(index)); dtemp=zeros(size(index)); vtemp=zeros(size(v)); len=length(index); for i=1:len dtemp(i)=B(len+1-i); ind(i)=len+1-index(i); vtemp(:,ind(i))=v(:,i); end d=dtemp; v=vtemp; %Normalization of eigenvectors for i=1:size(v,2) %access each column kk=v(:,i); temp=sqrt(sum(kk.^2)); v(:,i)=v(:,i)./temp; end %Eigenvectors of C matrix u=[]; for i=1:size(v,2) temp=sqrt(d(i)); u=[u (ImgMan*v(:,i))./temp]; end %Normalization of eigenvectors for i=1:size(u,2) kk=u(:,i); temp=sqrt(sum(kk.^2)); u(:,i)=u(:,i)./temp; end % show eigenfaces; figure(4); for i=1:size(u,2) img=reshape(u(:,i),icol,irow); img=img'; img=histeq(img,255); subplot(ceil(sqrt(M)),ceil(sqrt(M)),i) imshow(img) drawnow; if i==3 title('Eigenfaces','fontsize',18) end end % Find the weight of each face in the training set. omega = []; for h=1:size(ImgMan,2) WW=[]; for i=1:size(u,2) t = u(:,i)'; WeightOfImage = dot(t,ImgMan(:,h)'); WW = [WW; WeightOfImage]; end omega = [omega WW]; end % Acquire new image % Note: the input image must have a pgm or jpg extension. % It should have the same size as the ones in your training set. % It should be placed on your desktop InputImage = input('Please enter the name of the image and its extension \n','s'); InputImage = imread(strcat('',InputImage)); figure(5) subplot(1,2,1) imshow(InputImage); colormap('gray');title('Input image','fontsize',18) InImage=reshape(double(InputImage)',irow*icol,1); temp=InImage; me=mean(temp); st=std(temp); temp=(temp-me)*ustd/st+um; NormImage = temp; Difference = temp-m; p = []; aa=size(u,2); for i = 1:aa pare = dot(NormImage,u(:,i)); p = [p; pare]; end ReshapedImage = m + u(:,1:aa)*p; %m is the mean image, u is the eigenvector ReshapedImage = reshape(ReshapedImage,icol,irow); ReshapedImage = ReshapedImage'; %show the reconstructed image. subplot(1,2,2) imagesc(ReshapedImage); colormap('gray'); title('Matched image','fontsize',18) %InImWeight = []; %for i=1:size(u,2) % t = u(:,i)'; % WeightOfInputImage = dot(t,Difference'); % InImWeight = [InImWeight; WeightOfInputImage]; %end %ll = 1:M; %figure(68) %subplot(1,2,1) %stem(ll,InImWeight) %title('Weight of Input Face','fontsize',14) % Find Euclidean distance %e=[]; %for i=1:size(omega,2) % q = omega(:,i); % DiffWeight = InImWeight-q; % mag = norm(DiffWeight); % e = [e mag]; %end %kk = 1:size(e,2); %subplot(1,2,2) %stem(kk,e) %title('Eucledian distance of input image','fontsize',14) %MaximumValue = max(e) %MinimumValue = min(e)
3 仿真结果
4 参考文献
[1]孙强, 叶玉堂, 邢同举,等. 基于主成分分析法的人脸识别的探讨与研究[J]. 电子设计工程, 2011, 19(20):101-104.
-
基于PCA的人脸识别的Matlab实现代码
2021-04-18 07:33:09基于PCA的人脸识别算法--MatlabFace recognitionBased on PCA目录人脸识别技术是基于人的脸部特征,对输入的人脸图象或者视频流 . 首先判断其是否存在人脸 , 如果存在人脸,则进一步的给出每个脸的位置、大小和各个...基于PCA的人脸识别算法
--Matlab
Face recognition
Based on PCA
目录
人脸识别技术是基于人的脸部特征,对输入的人脸图象或者视频流 . 首先判断其是否存在人脸 , 如果存在人脸,则进一步的给出每个脸的位置、大小和各个主要面部器官的位置信息。并依据这些信息,进一步提取每个人脸中所蕴涵的身份特征,并将其与已知的人脸进行对比,从而识别每个人脸的身份。
广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。
主成分分析 ( Principal Component Analysis , PCA )或者主元分析。是一种掌握事物主要矛盾的统计分析方法,它可以从多元事物中解析出主要影响因素,揭示事物的本质,简化复杂的问题。计算主成分的目的是将高维数据投影到较低维空间。给定 n 个变量的 m 个观察值,形成一个 n′m 的数据矩阵,n 通常比较大。对于一个由多个变量描述的复杂事物,人们难以认识,那么是否可以抓住事物主要方面进行重点分析呢?如果事物的主要方面刚好体现在几个主要变量上,我们只需要将这几个变量分离出来,进行详细分析。但是,在一般情况下,并不能直接找出这样的关键变量。这时我们可以用原有变量的线性组合来表示事物的主要方面, PCA 就是这样一种分析方法。
根据Kyungnam Kim在其论文 Face Recognition using Principle Component Analysis 中所陈述,PCA人脸识别的基本思想是“…express the large 1-D vector of pixelsconstructed from 2-D facial image into the compact principal components of thefeature space(eigenspace projection).” 也就是从人脸图像中找出最能代表人脸的特征空间。一个单个的人脸图片映射到这个特征空间得到这个特征空间的一组系数(这张人脸图片的特征脸特征)。如果两张人脸图片映射到这个特征空间的系数差不多,就表示这两张人脸是同一个人。从论文中我们也知道了特征空间的计算方法“Eigenspace is calculated byidentifying the eigenvectors of the covariance matrix derived from a set offacial images(vectors). ”
测试数据库为ORL_92x112,其中含40个人,每人10张图片,共400张图片。
下图为40个人的第一张图片。
6.1训练阶段
6.1.1 一张人脸图片在计算机表示为一个像素矩阵,即是一个二维数组,现在把这个二维数组变成一维数组,即把第一行后面的数全部添加到第一行。这样一张图片就能表示为一个向量d=(x1,x2......xn)。xn表示像素。
6.1.2 现在训练库里有m张人脸图片,把这些图片都表示成上述的向量形式,即d1,d2,。。。dm,把这m个向量取平均值得向量avg=(y1,y2......yn)。
得到平均图像:
6.1.3 用d1,d2...........dm分别减去avg后组成一个矩阵A,即矩阵A的第一行为d1-avg,后面类似。A的大小为m×n。因为找特征空间不能基于一张图片,而要在所有的人脸图片提取出共同特征,所以要取各个人脸向量到平均人脸向量的向量差。依据这个每个人脸图片跟平均脸向量的向量差组成矩阵A,然后依据矩阵A来求解最特征空间。
6.1.4.矩阵A乘以A的逆矩阵A‘得A的协方差矩阵B,B的大小m×m,求B的特征向量。取最大的K个特征向量组成新的矩阵T,T的大小m×k。
6.1.5 使用A’乘以T得到特征脸C,C的大小n×k。
6.1.6 用图片向量d乘以C得到图片向量d在特征脸的投影向量pn,有多少张图片就有多少个pn。pn的大小1×k
6.2探究各特征值所占有的能量数
6.2.1 第n个特征值占所有特征值之和的百分比 (特征值从小到大排列)。
6.2.2前n个特征值占所有特征值之和的百分比 (特征值从小到大排列)。
在实验中,要求保留90%的能量,所以当取前57个特征值得时候就可以满足要求了。
6.3测试阶段
6.3.1.一张新的图片也表示为d的向量,记为D,D的大小1×n
6.3.2. D乘以上面训练得到的特征脸C得到这个图片向量D在C下的投影向量P,p的大小1×k。
6.3.3.计算p与上面所有的pn的向量距离,与p最小的那个向量所对应的人脸图片跟这张新人脸图片最像。
6.3.4.判别图像的相似性有两种方法:一种是计算N维空间中图像间的距离,另一种是测量图像间的相似性。当测量距离时,距离应尽可能的小,一般选择距离测试图像最近的训练图像作为它所属的类别,识别的方法和最初的图像匹配方法类似:将测试集中的每一幅降维图像与降维的训练集进行匹配,然后将其分类到距离最小的训练集头像中,如果两个头像表示一个人,表示识别成功。而测量相似性时,图像应尽可能的相似,也就是说具有最大相似性的训练图像类被认为是测试图像所属的类别。本程序采用三阶近邻法。核心代码如下
运行程序后,将读取40个人的后5张图片,并进行比对,代码附录给出。
可得到识别率为accuracy =0.8500;
[1]Kyungnam Kim. Face Recognition using Principle Component Analysis [J] . IEEESignal Processing Society,2002,9(2):40-42.
[2] 罗韵. 用Matlab进行PCA人脸识别 [N/OL] . 网易LOFTER,[2013-04-12] .http://blog.163.com/luoyun_dreamer/blog/static/215529070201331281538309/?suggestedreading
[3]haitao111313 . 基于PCA的人脸检测 [N/OL] . CSDN博客 , [2012-08-16] .http://blog.csdn.net/haitao111313/article/details/7875392
[4] Turk,M.A. ; Media Lab., MIT, Cambridge, MA, USA ; Pentland, A.P. Face Recognitionusing Eigenfaces [J] . IEEE Signal Processing Society,1991,7
附录1.基于PCA的人脸识别的Matlab实现代码
function FaceRecognition
clear % calc xmean,sigma and its eigen decomposition
close all
allsamples=[];%所有训练图像
for i=1:40
for j=1:5
if(i<10)
a=imread(strcat('E:\ORL_92x112\00',num2str(i),'0',num2str(j),'.bmp'));
else
a=imread(strcat('E:\ORL_92x112\0',num2str(i),'0',num2str(j),'.bmp'));
end
b=a(1:112*92); % b是行矢量 1×N,其中N=10304,提取顺序是先列后行,即从上到下,从左到右
b=double(b);
allsamples=[allsamples; b]; % allsamples 是一个M * N 矩阵,allsamples 中每一行数据代表一张图片,其中M=200
end
end
samplemean=mean(allsamples); % 平均图片,1 × N
figure%平均图
imshow(mat2gray(reshape(samplemean,112,92)));
for i=1:200
xmean(i,:)=allsamples(i,:)-samplemean; % xmean是一个M × N矩阵,xmean每一行保存的数据是“每个图片数据-平均图片”
end;
% figure%平均图
% imshow(mat2gray(reshape(xmean(1,:),112,92)));
sigma=xmean*xmean'; % M * M 阶矩阵
[v,d]=eig(sigma);
d1=diag(d);
[d2,index]=sort(d1); %以升序排序
cols=size(v,2);% 特征向量矩阵的列数
for i=1:cols
vsort(:,i) = v(:, index(cols-i+1) ); % vsort 是一个M*col(注:col一般等于M)阶矩阵,保存的是按降序排列的特征向量,每一列构成一个特征向量
dsort(i) = d1( index(cols-i+1) ); % dsort 保存的是按降序排列的特征值,是一维行向量
end %完成降序排列 %以下选择90%的能量
dsum = sum(dsort);
dsum_extract = 0;
p = 0;
while( dsum_extract/dsum < 0.9)
p = p + 1;
dsum_extract = sum(dsort(1:p));
end
a=1:1:200;
for i=1:1:200
y(i)=sum(dsort(a(1:i)) );
end
figure
y1=ones(1,200);
plot(a,y/dsum,a,y1*0.9,'linewidth',2);
grid
title('前n个特征特占总的能量百分比');
xlabel('前n个特征值');
ylabel('占百分比');
figure
plot(a,dsort/dsum,'linewidth',2);
grid
title('第n个特征特占总的能量百分比');
xlabel('第n个特征值');
ylabel('占百分比');
i=1; % (训练阶段)计算特征脸形成的坐标系
while (i<=p && dsort(i)>0)
base(:,i) = dsort(i)^(-1/2) * xmean' * vsort(:,i); % base是N×p阶矩阵,除以dsort(i)^(1/2)是对人脸图像的标准化,特征脸
i = i + 1;
end % add by wolfsky 就是下面两行代码,将训练样本对坐标系上进行投影,得到一个 M*p 阶矩阵allcoor
%
% for i=1:20
% figure%平均图
% b=reshape(base(:,i)',112,92);%
% imshow(mat2gray(b));
% end
allcoor = allsamples * base; accu = 0; % 测试过程
for i=1:40
for j=6:10 %读入40 x 5 副测试图像
if(i<10)
if(j<10)
a=imread(strcat('E:\ORL_92x112\00',num2str(i),'0',num2str(j),'.bmp'));
else
a=imread(strcat('E:\ORL_92x112\00',num2str(i),num2str(j),'.bmp'));
end
else
if(j<10)
a=imread(strcat('E:\ORL_92x112\0',num2str(i),'0',num2str(j),'.bmp'));
else
a=imread(strcat('E:\ORL_92x112\0',num2str(i),num2str(j),'.bmp'));
end
end
b=a(1:10304);
b=double(b);
tcoor= b * base; %计算坐标,是1×p阶矩阵
for k=1:200
mdist(k)=norm(tcoor-allcoor(k,:));
end; %三阶近邻
[dist,index2]=sort(mdist);
class1=floor( index2(1)/5 )+1;
class2=floor(index2(2)/5)+1;
class3=floor(index2(3)/5)+1;
if class1~=class2 && class2~=class3
class=class1;
elseif class1==class2
class=class1;
elseif class2==class3
class=class2;
end;
if class==i
accu=accu+1;
end;
end;
end;
accuracy=accu/200 %输出识别率
-
基于PCA的人脸识别matlab程序
2014-04-12 17:24:28基于PCA的人脸识别matlab程序,内有ORL人脸库,这是改进版,算法效率有提高。 -
pca人脸识别算法matlab代码-ML-K-Means_Clustering_and_PCA-MATLAB:此仓库使我们实现了K-means
2021-05-27 03:47:16pca人脸识别算法matlab代码机器学习(MATLAB) - k均值聚类和主成分分析 斯坦福大学的机器学习课程。 介绍 我们将实现K-means聚类算法并将其应用于压缩图像。 并将使用主成分分析来找到面部图像的低维表示。 环境 ... -
PCA人脸识别matlab程序
2011-06-12 21:43:53采用PCA进行特征降维,并用最小距离分类器进行分类的人脸识别程序。内含训练库和测试库,初学者的福音。