[32/64bit] cv::PCA のインスタンスを破棄します
core_PCA_delete p1
p1 = sptr : IntPtr obj
(プラグイン / モジュール : OpenCvSharpExtern.dll)
主成分分析を行います。 このクラスは、ベクトルの集合に対する特別な基底を計算するために使用されます。基底は、入力されたベクトルの集合から計算された共分散行列の固有ベクトルで構成されます。PCA クラスは,基底によって定義された新しい座標空間との間で,ベクトルを変換することもできます.通常,この新しい座標系では,元の集合からの各ベクトル(およびそのようなベクトルの任意の線形結合)は,共分散行列の最大の固有値の固有ベクトルに対応する最初の数個の成分を取ることによって,非常に正確に近似することができます.幾何学的には、共分散行列の支配的な固有値に対応するいくつかの固有ベクトルによって形成される部分空間へのベクトルの投影を計算することを意味します。そして、通常、このような投影は、元のベクトルに非常に近いものになります。つまり、高次元空間の元のベクトルを、部分空間に投影されたベクトルの座標からなるずっと短いベクトルで表すことができるのです。このような変換は、Karhunen-Loeve変換(KLT)とも呼ばれます。http://en.wikipedia.org/wiki/Principal_component_analysis 参照 下のサンプルは,2つの行列を受け取る関数です.1つ目の関数は,PCAの計算に使用されるベクトルの集合(1つのベクトルにつき1行)を格納します.2つ目の関数は,もう1つの「テスト」用のベクトルセット(1つのベクトルにつき1行)を格納します.まず,これらのベクトルは PCA によって圧縮され,次に再構成されます.そして,再構成誤差ノルムが計算され,各ベクトルに対して出力されます. using namespace cv;PCA compressPCA(const Mat& pcaset, int maxComponents, const Mat& testset, Mat& compressed){ PCA pca(pcaset, // データを渡す Mat(), // 事前に計算された平均ベクトルを持っていないので, // PCA エンジンに計算させます PCA::DATA_AS_ROW, // ベクトルが // 行列の行として格納されていることを示します // (ベクトルが // 行列の列である場合は PCA::DATA_AS_COL を利用してください) maxComponents // 保持する主成分の数を指定します ); // テストデータがない場合は,計算された基底を返すだけで,すぐに利用できます if( !testset.data ) return pca; CV_Assert( testset.cols == pcaset.cols ); compressed.create(testset.rows, maxComponents, testset.type()); Mat reconstructed; for( int i = 0; i < testset.rows; i++ ) { Mat vec = testset.row(i), coeffs = compressed.row(i), reconstructed; // ベクトルを圧縮し,その結果を // 出力行列の i 番目の行に格納します. pca.project(vec, coeffs); // そして,それを再構成します. pca.backProject(coeffs, reconstructed); // そして,その誤差を測定します.関連項目:ocalcCovarMatrix, mulTransposed, SVD, dft, dct 例: samples/cpp/pca.cpp, samples/cpp/tutorial_code/ml/introduction_to_pca/introduction_to_pca.cpp. 元関数名(C#): core_PCA_delete 元DLLエクスポート名: core_PCA_delete 参照元CSファイル: Internal\PInvoke\NativeMethods\core\NativeMethods_core_Classes.cs ▼ C言語側関数定義
CVAPI(ExceptionStatus) core_PCA_delete(cv::PCA *obj) { BEGIN_WRAP delete obj; END_WRAP }
プラグイン / モジュール | OpenCvSharpExtern.dll |
バージョン | 1.00 |
作成日 | 2021/11/30 |
著作者 | inovia |
URL | https://hsp.moe/ |
備考 | #include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as" 使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること |
タイプ | OpenCVSharpラッパーDLL |
グループ | NativeMethods_core_Classes |
対応環境 |
|
hs ファイル | hsphelp\OpenCvSharpExtern.hs |