OpenCV を用いた主成分分析(PCA)
ここでは PCA を OpenCV の関数を用いて行うことについてのみ説明します.PCA とは何かなどについては他のサイトや書籍を参考にされて下さい.

OpenCV には PCA を行うために次の3つの関数が用意されています.
cvCalcPCA(const CvArr* data, CvArr* avg, CvArr* eigenvalues, CvArr* eigenvectors, int flags);
1つ目の関数(cvCalcPCA)は,ベクトル集合の主成分分析を行う関数.この関数は,観測されるデータベクトル集合を
,主成分分析によって部分空間へ投影されるベクトルを
としたときの連続写像
を求めます.
cvProjectPCA(const CvArr* data, CvArr* avg, CvArr* eigenvalues, CvArr* project);
2つ目の関数(cvProjectPCA)は,指定された部分空間へベクトルを投影します.あらかじめ求めた連続写像
を用いて
から
を算出します.
cvBackProjectPCA(const CvArr* project, CvArr* avg, CvArr* eigenvectors, CvArr* result);
3つ目の関数(cvBackProjectPCA)は,投影係数から元のベクトルを再構築します.部分空間
から 観測データ空間
への逆写像
を行います.
各関数への引数については次のようになっています.


