Beispiel #1
0
CvMat* PCA(CvMat *Vector1)
{
    int col = Vector1->cols;
    CvMat* AvgVector;
    CvMat* EigenValue_Row;
    CvMat* EigenVector;

    AvgVector = cvCreateMat(1, col, CV_32FC1);
    EigenValue_Row = cvCreateMat(col, 1, CV_32FC1);
    EigenVector = cvCreateMat(col, col, CV_32FC1);

    //PrintMatrix(Vector1, RED);
    /* cvCalcPCA() */
    cvCalcPCA(Vector1,
              AvgVector,
              EigenValue_Row,
              EigenVector,
              CV_PCA_DATA_AS_ROW
             );
    PrintMatrix(AvgVector, BLUE);
    /* cvPorjectPCA() */
    cvProjectPCA(Vector1,
                 AvgVector,
                 EigenVector,
                 Vector1);
    PrintMatrix(Vector1, YELLOW);
    PrintMatrix(EigenVector, GREEN);
    /* cvBackProjectPCA */
    cvBackProjectPCA(Vector1,
                     AvgVector,
                     EigenVector,
                     Vector1);
    PrintMatrix(Vector1, BLACK);

    cvReleaseMat(&AvgVector);
    cvReleaseMat(&EigenVector);
    cvReleaseMat(&EigenValue_Row);
    return Vector1;
}
Beispiel #2
0
//============================================================================
void AAM_TDM::CalcTexture(const CvMat* lamda, CvMat* t)
{
	cvBackProjectPCA(lamda, __MeanTexture, __TextureEigenVectors, t);
}