opencv-calcCovarMatrix协方差矩阵

协方差: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;

 

 

 

posted @ 2021-11-09 07:25  天子骄龙  阅读(203)  评论(0编辑  收藏  举报