简单使用 cvCalcPCA 计算主成分的代码 CvMat* pData = cvCreateMat(100, 2, CV_32FC1); //二维数据点 for(int i = 0; i < 100; i++) ...{ cvSet2D(pData, i, 0,cvRealScalar(i)); cvSet2D(pData, i, 1,cvRealScalar(i)); } CvMat* pMean = cvCreateMat(1, 2, CV_32FC1); CvMat* pEigVals = cvCreateMat(1, 2, CV_32FC1); CvMat* pEigVecs = cvCreateMat(2, 2, CV_32FC1); cvCalcPCA(pData, pMean, pEigVals, pEigVecs, CV_PCA_DATA_AS_ROW ); float pp[100]; memcpy(pp,pEigVals->data.fl,100 ); memcpy(pp,pEigVecs->data.fl,100 ); memcpy(pp,pMean->data.fl,100 );