协方差:https://blog.csdn.net/xiao_lxl/article/details/72730000
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;