资源简介

本方法采用pca进行特征提取,knn分类器进行人脸识别。

资源截图

代码片段和文件信息

       
function accuracy=classifier_KNN(c_testsc_trainsK)

n=0;
tests=c_tests;            %测试样本
trains=c_trains;          %训练样本
for i=1:size(tests1)
    for j=1:size(trains1)
        dist(j)=(norm(tests(i:)-trains(j:)))^2;  %计算每个测试样本与所有训练样本的欧氏距离
    end
    
   [distsortindex]=sort(dist);   %将距离按升序排列并返回元素所在的行数
 
   
   %----------K-阶近邻程序部分--------  
   nearK=index(1:K);     %index(1:K):取距离最近的前K个样本的标号,K取1,3,5,7
   max=-1;                                                        
   for c=1:40    %orl时,c=1:40
       cntK=length(find((floor(nearK/5)+1)==c)); %计算每一类别的数目
       if (cntK>max)
           max=cntK;    
           class=c;     %取类别数目最多的类别的标号
       end
   end

%******三种算法的公共部分,判别是否是同类*********
    if class==(floor(i/5)+1)   %因为每相连的5个样本为一类,计算该样本的类别号

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        890  2009-12-14 19:14  pca_knn\classifier_NN.m

     文件       2472  2010-04-06 10:52  pca_knn\main_pca.m

     文件        462  2009-11-04 18:13  pca_knn\scaleForSVM.m

     文件       1083  2010-04-06 10:52  pca_knn\classifier_KNN.m

     目录          0  2010-04-06 10:51  pca_knn

----------- ---------  ---------- -----  ----

                 4907                    5


评论

共有 条评论