MCPcopy Create free account
hub / github.com/creatale/node-dv / cvProjectPCA

Function cvProjectPCA

deps/opencv/modules/core/src/matmul.cpp:3308–3336  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3306
3307
3308CV_IMPL void
3309cvProjectPCA( const CvArr* data_arr, const CvArr* avg_arr,
3310 const CvArr* eigenvects, CvArr* result_arr )
3311{
3312 cv::Mat data = cv::cvarrToMat(data_arr), mean = cv::cvarrToMat(avg_arr);
3313 cv::Mat evects = cv::cvarrToMat(eigenvects), dst0 = cv::cvarrToMat(result_arr), dst = dst0;
3314
3315 cv::PCA pca;
3316 pca.mean = mean;
3317 int n;
3318 if( mean.rows == 1 )
3319 {
3320 CV_Assert(dst.cols <= evects.rows && dst.rows == data.rows);
3321 n = dst.cols;
3322 }
3323 else
3324 {
3325 CV_Assert(dst.rows <= evects.rows && dst.cols == data.cols);
3326 n = dst.rows;
3327 }
3328 pca.eigenvectors = evects.rowRange(0, n);
3329
3330 cv::Mat result = pca.project(data);
3331 if( result.cols != dst.cols )
3332 result = result.reshape(1, 1);
3333 result.convertTo(dst, dst.type());
3334
3335 CV_Assert(dst0.data == dst.data);
3336}
3337
3338
3339CV_IMPL void

Callers

nothing calls this directly

Calls 6

cvarrToMatFunction · 0.85
projectMethod · 0.80
rowRangeMethod · 0.45
reshapeMethod · 0.45
convertToMethod · 0.45
typeMethod · 0.45

Tested by

no test coverage detected