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