| 3074 | } |
| 3075 | |
| 3076 | void PCA::backProject(InputArray _data, OutputArray result) const |
| 3077 | { |
| 3078 | Mat data = _data.getMat(); |
| 3079 | CV_Assert( mean.data && eigenvectors.data && |
| 3080 | ((mean.rows == 1 && eigenvectors.rows == data.cols) || |
| 3081 | (mean.cols == 1 && eigenvectors.rows == data.rows))); |
| 3082 | |
| 3083 | Mat tmp_data, tmp_mean; |
| 3084 | data.convertTo(tmp_data, mean.type()); |
| 3085 | if( mean.rows == 1 ) |
| 3086 | { |
| 3087 | tmp_mean = repeat(mean, data.rows, 1); |
| 3088 | gemm( tmp_data, eigenvectors, 1, tmp_mean, 1, result, 0 ); |
| 3089 | } |
| 3090 | else |
| 3091 | { |
| 3092 | tmp_mean = repeat(mean, 1, data.cols); |
| 3093 | gemm( eigenvectors, tmp_data, 1, tmp_mean, 1, result, GEMM_1_T ); |
| 3094 | } |
| 3095 | } |
| 3096 | |
| 3097 | Mat PCA::backProject(InputArray data) const |
| 3098 | { |
no test coverage detected