Matlab PCA代码输入,用于掌纹识别

Matlab PCA代码输入,用于掌纹识别,matlab,pca,svd,Matlab,Pca,Svd,我对Matlab是新手。 我正在尝试将PCA函数(下面列出的URL)应用到我的掌纹识别程序中,以生成特征掌纹。我的掌纹灰度图像尺寸为450*400。 在使用它之前,我试图研究这些代码并添加一些代码以将特征向量保存为.mat文件。我为自我理解添加了一些%的评论 经过几天的学习,我仍然找不到答案。 我决定寻求帮助。关于PCA.m,我有几个问题要问 PCA.m “选项”的输入应该是什么?“PCA(数据、详细信息、选项)”的定义 (这是降维的整数吗?我试图找出“options”值传递到哪里,但仍然无法获

我对Matlab是新手。 我正在尝试将PCA函数(下面列出的URL)应用到我的掌纹识别程序中,以生成特征掌纹。我的掌纹灰度图像尺寸为450*400。 在使用它之前,我试图研究这些代码并添加一些代码以将特征向量保存为.mat文件。我为自我理解添加了一些%的评论

经过几天的学习,我仍然找不到答案。 我决定寻求帮助。关于PCA.m,我有几个问题要问

PCA.m

  • “选项”的输入应该是什么?“PCA(数据、详细信息、选项)”的定义 (这是降维的整数吗?我试图找出“options”值传递到哪里,但仍然无法获得ans。“h&h2”的msgbox将检查代码运行到哪里。我试图使用整数10,但PCA.m处理的维度是400*400。)

  • 我保存为“.mat”文件的“eigvector”已准备好使用其他特征向量执行欧几里德距离分类器了吗?(我认为eigvector等同于eigenpalm,就像人脸识别中的特征脸一样。我试图将特征向量矩阵转换回图像,但PCA处理后的图像是黑色的,上面有许多点)

  • mySVD.m

  • 在该函数中,有两个值可以更改,即设置为1600的最大矩阵大小和设置为0.1%的EIGVECTOR比率。我可以知道这些值会影响结果吗?(我试着对这些值进行处理,但我看不出有什么不同。我的掌纹图像尺寸设置为450*400,所以最大矩阵大小应该设置为180000?)
  • **我希望你们能理解我的要求,请帮忙,谢谢(=

    原文:

    mySVD:

    %由我编辑的版本
    函数[eigvector,eigvalue]=PCA(数据、详细信息、选项)
    %主成分分析
    %
    %用法:
    %[eigvector,eigvalue]=PCA(数据,选项)
    %[eigvector,eigvalue]=PCA(数据)
    %
    %输入:
    %数据-数据矩阵。fea的每一行向量都是一个数据点。
    %fea=有限元分析?????
    %options.ReducedDim-缩减子空间的维数。如果为0,
    %所有尺寸都将保留。
    %默认值为0。
    %
    %输出:
    %eigvector-每列都是一个嵌入函数,用于新的
    %数据点(行向量)x,y=x*eigvector
    %将是x的嵌入结果。
    %eigvalue-PCA特征值问题的排序eigvalue。
    %
    %示例:
    %fea=兰特(7,10);
    %选项=[];%在选项中存储空矩阵
    %选项。ReducedDim=4;
    %[eigvector,eigvalue]=PCA(fea,4);
    %Y=fea*eigvector;
    %
    %版本3.0——2011年12月
    %版本2.2--2009年2月
    %版本2.1—2007年6月
    %版本2.0—2007年5月
    %1.1版——2006年2月
    %1.0版——2004年4月
    %
    %邓才(gmail.com上的邓才)撰稿
    %
    如果(~exist('options','var'))
    %A=存在('name','kind')
    %var=仅检查变量。
    %http://www.mathworks.com/help/matlab/matlab_prog/symbol-reference.html#bsv2dx9-1
    %波浪号“~”字符用于比较数组中不相等的值,
    %查找数组的逻辑NOT,
    %作为输入或输出参数的占位符,您希望从函数调用中省略。
    期权=[];
    结束
    h2=msgbox(“尚未”);
    ReducedDim=0;
    如果是字段(选项“ReducedDim”)
    %tf=isfield(S,“fieldname”)
    h2=msgbox(“选中”);
    ReducedDim=选项。ReducedDim;
    结束
    [nSmp,nFea]=大小(数据);
    
    如果(ReducedDim>nFea)| |(ReducedDim在结构中传递选项,例如:

    options.ReducedDim = 2;
    

    选项
    ReducedDim
    选择要用于表示原始矩阵最终投影的维数。例如,如果选择
    option.ReducedDim=2
    ,则仅使用具有最大特征值的两个特征向量(两个主分量)来表示数据(实际上,PCA将返回具有最大特征值的两个特征向量)

    PCARatio
    允许您选择维数作为第一个特征向量,其中最大特征值占特征值总和的分数
    PCARatio


    mySVD.m
    中,我不会增加默认值,除非您认为描述数据集需要超过1600个特征向量。我认为您可以安全地保留默认值。

    如果您想发布特征向量的图像,我想您可能需要以某种方式缩放图像,以灰度表示,即s有界0-255范围可能存在问题。
    options.ReducedDim = 2;
    
     options.PCARatio =0.4;