
cv::Mat_<float> samples[3];
samples[0].create(1, 3);
samples[0](0, 0) = 1;
samples[0](0, 1) = 2;
samples[0](0, 2) = 3;
samples[1].create(1, 3);
samples[1](0, 0) = 4;
samples[1](0, 1) = 5;
samples[1](0, 2) = 6;
samples[2].create(1, 3);
samples[2](0, 0) = 7;
samples[2](0, 1) = 8;
samples[2](0, 2) = 9;
cv::Mat_<float> covar, meanMat;
cv::calcCovarMatrix(samples, 3, covar, meanMat,CV_COVAR_NORMAL | CV_COVAR_ROWS);//求取向量集的协方差矩阵
//参数1samples: 输入的向量集,它们可以是若干个同样形式的向量组成,也可以是一个矩阵的若干行组成
// 注意:参数1不能是单独一个3*3的矩阵,必须是由3个1*3的矩阵组成时成功
//参数2:向量的数目
//参数3:输出的协方差矩阵
//参数4:输出的均值矩阵
/*参数5:操作标志,分别有:CV_COVAR_SCRAMBLED,CV_COVAR_NORMAL,CV_COVAR_USE_AVG,CV_COVAR_SCALE,CV_COVAR_ROWS,CV_COVAR_COLS
CV_COVAR_ROWS,CV_COVAR_COLS是指当samples 是由一个矩阵时,用来指用单个向量是由其中行向量或者列向量组成
*/
std::cerr << covar << std::endl;
std::cerr << meanMat << std::endl;