二维的LDA+PCA人脸识别matlab程序

  • z2_337176
    了解作者
  • matlab
    开发工具
  • 2.7MB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-02-22 11:12
    上传日期
二维的LDA+PCA人脸识别matlab程序,可直接使用
二维的LDA+PCA人脸识别matlab程序
  • 2DFDA
  • main.asv
    1.4KB
  • main.m
    1.4KB
  • tdfda.m
    1.3KB
  • sortem.m
    326B
  • classif.m
    492B
  • success.m
    619B
  • orldata.mat
    3.9MB
  • www.pudn.com.txt
    218B
  • PCA_face2.m
    1.8KB
  • PCA_face.m
    1.6KB
内容介绍
%PCA人脸识别 imgdata=[];%训练图像矩阵 for i=1:40 for j=1:5 a=imread(strcat('G:\PicLib\orl\train\orl_',num2str(i,'%03d'),'_',num2str(j,'%03d'),'.bmp')); % imshow(a); b=a(1:112*92); % b是行矢量 1×N,其中N=10304 b=double(b); imgdata=[imgdata; b]; % imgdata 是一个M * N 矩阵,imgdata中每一行数据一张图片,M=200 end; end; imgdata=imgdata'; %每一列为一张图片 imgmean=mean(imgdata,2); % 平均图片,N维列向量 for i=1:200 minus(:,i) = imgdata(:,i)-imgmean; % minus是一个N*M矩阵,是训练图和平均图之间的差值 end; covx=minus'* minus; % M * M 阶协方差矩阵 [COEFF, latent,explained] = pcacov(covx'); %PCA,用协方差矩阵的转置来计算以减小计算量 %选择构成95%的能量的特征值 i=1; proportion=0; while(proportion < 95) proportion=proportion+explained(i); i=i+1; end; p=i-1; % 训练得到特征脸坐标系 i=1; while (i<=p && latent(i)>0) base(:,i) = latent(i)^(-1/2)*minus * COEFF(:,i); % base是N×p阶矩阵,用来进行投影,除以latent(i)^(1/2)是对人脸图像的标准化 i = i + 1; end % 将训练样本对坐标系上进行投影,得到一个 p*M 阶矩阵为参考 reference = base'*minus; accu = 0; accu = 0; %计算准确度 % 测试过程 for i=1:40 for j=6:10 %读入40 x 5 副测试图像 a=imread(strcat('G:\PicLib\orl\test\orl_',num2str(i,'%03d'),'_',num2str(j,'%03d'),'.bmp')); b=a(1:10304); b=double(b); b=b'; object = base'*(b-imgmean); distance=100000; %最小距离法,寻找和待识别图片最为接近的训练图片 for k=1:200 temp= norm(object - reference(:,k)); if (distance > temp) which = k; distance = temp; end; end; temp1 = which/5; if (temp1 == floor(temp1)) left = (temp1-1)*5; right = temp1*5; else left = floor(temp1)*5; right = ceil(temp1)*5; end; if (((i-1)*5+j-5>left)&&((i-1)*5+j-5<=right)) %正确识别 accu = accu+1; end; end; end; accuracy=accu/200 %输出识别率
评论
    相关推荐
    • Matlab合集
      冈萨雷斯数字图像处理MATLAB版.中文版+数字图像处理第二版中文版(冈萨雷斯)+MATLAB-R2014a完全自学一本通+MATLAB R2016a完全自学一本通 素材文件+[模式识别与智能计算:MATLAB技术实现(第2版)].杨淑莹.扫描版
    • MATLAB教程
      MATLAB教程MATLAB教程MATLAB教程MATLAB教程MATLAB教程MATLAB教程
    • MATLAB
      MATLAB 该项目是在matlab上完成的,涉及创建和移动宇宙飞船和机器人。 太空飞船和机器人是使用Matlab中的简单几何形状创建的,并通过连续变换矩阵进行移动。 这个项目教我如何使用变换矩阵(旋转,平移等)的概念...
    • MATLAB基础
      一本学习matlab的一本好书
    • MATLAB编译器
      基于MATLAB 2018b版本介绍MATLAB编译器。介绍如何利用编译器将MATLAB代码编译为独立应用程序或组件,并在没有安装MATLAB的计算机上进行部署。
    • matlabruntime
      通过奇点容器运行您的matlab项目 可以在没有MATLAB的容器中运行matlab代码。 为此,我们首先需要通过Matlab编译器在本地构建相应的Matlab代码的独立应用程序,然后使用具有Matlab运行时( 的容器)运行该应用程序 )...
    • matlab实现
      matlab实现 matlab实现matlab实现matlab实现matlab实现
    • matlab 教程
      matlab 信号处理资料,里面包含信号处理pdf文档,一些杂乱的程序和命令等
    • matlab教程
      matlab教程,PPT格式,包含 matlab基本知识、matlab入门、matlab作图、线性规划、无约束优化、非线性规划、统计工具箱、差值、微分方程等多项知识点,并且每个知识点独立成为PPT,内还含有matlab信号处理详解等文档...
    • matlab简介
      1.MATLAB 开发环境 1.1 MATLAB 的视窗环境 进入MATLAB之后,会看到一个视窗MATLAB Command Window称为指令视窗,它是你键入指令的地方同时 MATLAB也将计算结果显示在此。 1.2 简易计算 我们先从MATLAB的...