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

Method project

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

Source from the content-addressed store, hash-verified

3044}
3045
3046void PCA::project(InputArray _data, OutputArray result) const
3047{
3048 Mat data = _data.getMat();
3049 CV_Assert( mean.data && eigenvectors.data &&
3050 ((mean.rows == 1 && mean.cols == data.cols) || (mean.cols == 1 && mean.rows == data.rows)));
3051 Mat tmp_data, tmp_mean = repeat(mean, data.rows/mean.rows, data.cols/mean.cols);
3052 int ctype = mean.type();
3053 if( data.type() != ctype || tmp_mean.data == mean.data )
3054 {
3055 data.convertTo( tmp_data, ctype );
3056 subtract( tmp_data, tmp_mean, tmp_data );
3057 }
3058 else
3059 {
3060 subtract( data, tmp_mean, tmp_mean );
3061 tmp_data = tmp_mean;
3062 }
3063 if( mean.rows == 1 )
3064 gemm( tmp_data, eigenvectors, 1, Mat(), 0, result, GEMM_2_T );
3065 else
3066 gemm( eigenvectors, tmp_data, 1, Mat(), 0, result, 0 );
3067}
3068
3069Mat PCA::project(InputArray data) const
3070{

Callers 2

PCAProjectMethod · 0.80
cvProjectPCAFunction · 0.80

Calls 5

repeatFunction · 0.85
MatClass · 0.85
getMatMethod · 0.45
typeMethod · 0.45
convertToMethod · 0.45

Tested by

no test coverage detected