• 大小: 7KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: 其他
  • 标签: PCA  LDA  

资源简介

这是我写的人脸识别代码,识别率可达到100%。但是你要自己调调,可以写篇论文。

资源截图

代码片段和文件信息

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%BHLDA算法测试。
%样本为对半偶图像
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
%tsc:test_sample_coefficient
%lsc:learn_sample_coefficient
lda_rate=[];
pca_rate=[];
time_learn=[];
time_test=[];

tic;
%for Yela
height=40;
width=20;
XClass=[];
classCount=40;              %类数
learn_sample_per_class=3;   %每类训练样本数
sample_count_per_class=10;  %每类样本数

%for ORL
%height=37;
%width=15;
%XClass=[];
%classCount=40;              %类数
%learn_sample_per_class=5;   %每类训练样本数
%sample_count_per_class=10;  %每类样本数

learn_sample_total=classCount*learn_sample_per_class;                        %学习样本总数
test_sample_total=classCount*(sample_count_per_class-learn_sample_per_class);%测试样本总数
for m=1:classCount
    for n=1:learn_sample_per_class
    XClass=[XClass m];
    end
end

for dim=5:50

%PCA参数初始化
images_up=[];    %训练样本的上半部分
images_down=[];  %训练样本的下半部分
%读训练样本
height_upimg=ceil(0.6*height);      %上部分人脸高度
height_downimg=height-height_upimg; %下部分人脸高度
for i=1:classCount                   %每类
    for j=1:learn_sample_per_class   %每类训练样本
        %半对偶图像
        %for Yela
        %str1=strcat(‘E:\LDA_HLDA_BHLDA\face_database\Yale_block\s‘int2str(i)‘\‘int2str(2*j-1)‘.BMP‘);
        %str2=strcat(‘E:\LDA_HLDA_BHLDA\face_database\Yale_block\s‘int2str(i)‘\‘int2str(2*j)‘.BMP‘);
        
        %for ORL
        str1=strcat(‘E:\LDA_HLDA_BHLDA\face_database\ORL_BLOCK\s‘int2str(i)‘\‘int2str(2*j-1)‘.BMP‘);
        str2=strcat(‘E:\LDA_HLDA_BHLDA\face_database\ORL_BLOCK\s‘int2str(i)‘\‘int2str(2*j)‘.BMP‘);
        img1=imread(str1);
        img2=imread(str2);
        img1=double(img1);
        img2=double(img2);
        img=(img1+img2)/2;
        img_up=img(1:height_upimg:);
        img_down=img(height_upimg+1:height:); 
        %上下半部分人脸
        img_up=reshape(img_upheight_upimg*width1);
        images_up=[images_up img_up];
        img_down=reshape(img_downheight_downimg*width1);
        images_down=[images_down img_down];
     end
end

%计算投影矩阵
[eigvector_up eigvalue_up meandata_up diff_img_up]=PCA(images_updim);
[eigvector_down eigvalue_down meandata_down diff_img_down]=PCA(images_downdim);

lda_learn_project_up=[];        %PCA变换坐标,lda_learn_project为LDA算法入口参数
lda_learn_project_up =eigvector_up‘*diff_img_up;
lda_learn_project_down=[];        %PCA变换坐标,lda_learn_project为LDA算法入口参数
lda_learn_project_down =eigvector_down‘*diff_img_down;
t1=toc;
time_learn=[time_learn t1];

tic;
%读测试样本
images_up_test=[];
images_down_test=[];
for i=1:classCount
    for j=1:(sample_count_per_class-learn_sample_per_class)
        %for Yela
        %str1=strcat(‘E:\LDA_HLDA_BHLDA\face_database\Yale_block\s‘int2str(i)‘\‘int2str(2*j-1+learn_sample_per_class*2)‘.BMP‘);
        %str2=strcat(‘E:\LDA_HLDA_BHLDA\face_database\Yale_block\s‘int2str(i)‘\‘int2str(2*j+learn_sample_per_class*2)‘.BMP‘);
        
        %for ORL
        str1=strcat(

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

     文件       3274  2010-06-24 17:32  HPCA_test.m

     文件       2782  2010-06-14 09:37  LDA.m

     文件       3365  2010-07-16 09:00  LDA_test.m

     文件       1588  2010-06-23 17:42  PCA.m

     文件       2707  2010-06-24 14:37  SUBLDA.m

     文件       6221  2010-06-24 22:20  BHLDA_test.m

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

                19937                    6


评论

共有 条评论