PCA相关资料.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PCA相关资料

在OPENCV中使用PCA非常简单,只要几条语句就可以了。1. 初始化数据//每一行表示一个样本CvMat* pData = cvCreateMat( 总的样本数, 每个样本的维数, CV_32FC1 );CvMat* pMean = cvCreateMat(1, 样本的维数, CV_32FC1);//pEigVals中的每个数表示一个特征值CvMat* pEigVals = cvCreateMat(1, min(总的样本数,样本的维数), CV_32FC1);//每一行表示一个特征向量CvMat* pEigVecs = cvCreateMat( min(总的样本数,样本的维数), 样本的维数,?CV_32FC1);2. PCA处理,计算出平均向量pMean,特征值pEigVals和特征向量pEigVecscvCalcPCA( pData, pMean, pEigVals, pEigVecs, CV_PCA_DATA_AS_ROW );3. 选出前P个特征向量(主成份),然后投影,结果保存在pResult中,pResult中包含了P个系数CvMat* pResult = cvCreateMat( 总的样本数, PCA变换后的样本维数(即主成份的数目), CV_32FC1 );cvProjectPCA( pData, pMean, pEigVecs, pResult );4. 重构,结果保存在pRecon中CvMat* pRecon = cvCreateMat(总的样本数, 每个样本的维数, CV_32FC1 );cvBackProjectPCA( pResult, pMean, pEigVecs, pRecon );5.重构误差的计算?计算pRecon和pData的差就可以了。?使用时如果是想用PCA判断“是非”问题,则可以先用正样本计算主成分,判断时,对需要判断得数据进行投影,然后重构,计算重构出的数据与原数据的差异,如果差异在给定范围内,可以认为“是”。?如果相用PCA进行分类,例如,对数字进行分类,则先用所有数据(0-9的所有样本)计算主成分,然后对每一类数据进行投影,计算投影的系数,可简单得求平均,即对每一类求出平均系数。分类时,将需要分类得数据进行投影,得到系数,与先前计算出得每一类得平均系数进行比较,可判为最接近得一类。当然这只是最简单得使用方法。?PCA人脸识别(原文出处:/linzhao/archive/2012/01/05/2312758.html/linzhao/archive/2012/01/05/2312758.html?)?PCA(Eigenface)方法是人脸识别的主流方法之一。cvEigenDecomposite()函数作用是将人脸图像通过Eigenface变换矩阵,投射到子空间中。子空间中的人脸向量,是一个1×nEigens(nEigens由自己取得)的行向量,极大地降低了数据维度,便于下一步的聚类、识别。结合具体例子,尽量清楚地跟大家讨论这个函数的用途。?函数说明如下:EigenDecomposite:Calculates all decomposition coefficients for input object?计算输入目标的所有的分解系数void?cvEigenDecomposite(?IplImage* obj, int nEigObjs, void* eigInput,int ioFlags, void* userData, IplImage* avg, float* coeffs?);?obj?- Input object,输入目标nEigObjs?- Number of eigen objects,自选eigen数量eigInput?- Pointer either to the array of IplImage input objects or to the read callback function according to the value of the parameter ioFlags,eigenface向量组成的变换矩阵,数据结构属于IplImage队列,或者根据ioFlag参数值变化的回调函数。ioFlags?- Input/output flagsuserData?- Pointer to the structure that contains all necessary data for the callback functions.avg?- Averaged object.coeffs?- Calculated coefficients; an output parameter 这是唯一一个输出,即人脸在子空间的投影(decomposition co

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档