opencv利用calcCovarMatrix函数求协方差矩阵存在的问题

来源:互联网 发布:c语言怎么判断奇偶 编辑:程序博客网 时间:2024/04/28 23:57
今天用到opencv求解矩阵的协方差矩阵,无意中发现了一个问题,写出来供大家参考。
#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;void displayMat(Mat& mat){for (int i = 0;i<mat.rows;i++)  {  for (int j = 0;j<mat.cols ;j++)  {  printf("%f  ",mat.at<double>(i,j));  }  printf("\n");  }}int main(){double data[5][4] = { 1, 2, 3 , 4 ,        5, 6, 7 , 8 ,        9, 0, 1 , 3 ,        2, 4, 6 , 8 ,        1, 3, 5 , 9      };  Mat mat(5,4,CV_64FC1) ;  for (int i =0;i<mat.rows;i++)  {  for (int j = 0;j<mat.cols ;j++)  {  mat.at<double>(i,j) = data[i][j];  }}Mat covMat;  Mat meanMat;  calcCovarMatrix(mat,covMat,meanMat,CV_COVAR_NORMAL|CV_COVAR_ROWS);cout<<"cov:"<<endl;//打印矩阵displayMat(covMat);cout<<"mean:"<<endl;displayMat(meanMat);return 0;}

实验结果:

cov:47.200000  -11.000000  -15.200000  -19.200000-11.000000  20.000000  21.000000  19.000000-15.200000  21.000000  23.200000  23.200000-19.200000  19.000000  23.200000  29.200000mean:3.600000  3.000000  4.400000  6.400000

只看这个结果你肯定不会发现任何问题,下面让我们看看matlab中的结果

 data=[1, 2, 3 , 4;       5, 6, 7 , 8;       9, 0, 1 , 3;        2, 4, 6 , 8;       1, 3, 5 , 9 ];>> cov(data)ans =   11.8000   -2.7500   -3.8000   -4.8000   -2.7500    5.0000    5.2500    4.7500   -3.8000    5.2500    5.8000    5.8000   -4.8000    4.7500    5.8000    7.3000>> cov(data)*4ans =   47.2000  -11.0000  -15.2000  -19.2000  -11.0000   20.0000   21.0000   19.0000  -15.2000   21.0000   23.2000   23.2000  -19.2000   19.0000   23.2000   29.2000


这次你肯定会发现问题了,是的,opencv中求得的协方差矩阵要比matlab中的大4倍!

经过我多次实验的出结论:opencv中求得的协方差矩阵比matlab中的大(n-1)倍!(n是矩阵的行数)

不知道是什么原因,有知道的大神可以说一下。

                                             
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 眼睛有干眼屎是怎么办 小孩流黄鼻涕是怎么办 孕妇9个月流鼻涕怎么办 流黄鼻涕两周了怎么办 大人流黄脓鼻涕怎么办 鼻子一直流鼻涕像水一样怎么办 6个月婴儿流鼻涕怎么办 9个月婴儿流鼻涕怎么办 狗狗晕车吐了怎么办 小狗又拉又吐怎么办 犬瘟热流黄鼻涕怎么办 2个月幼犬流鼻涕怎么办 5个月宝宝流鼻血怎么办 1岁宝宝感冒鼻塞怎么办 4个月宝宝鼻塞怎么办 4岁宝宝感冒鼻塞怎么办 宝宝4个月流鼻涕怎么办 3个月的宝宝鼻塞怎么办 50天的小孩鼻塞怎么办 鼻子流脓鼻涕2周怎么办 两岁宝宝流清鼻涕怎么办 1岁宝宝流黄鼻涕怎么办 宝宝上火流黄鼻涕怎么办 一周岁宝宝流清鼻涕怎么办 一周岁流清鼻涕怎么办 4岁宝宝感冒发烧怎么办 6个月宝宝流鼻涕怎么办 8岁儿童感冒发烧怎么办 婴儿感冒咳嗽怎么办%3f 小孩流鼻涕鼻塞怎么办最简单方法 宝宝鼻炎鼻子不通气怎么办 小孩晚上睡觉鼻子不通气怎么办 孩子晚上睡觉鼻子不通气怎么办 3个月婴儿流鼻涕怎么办 一个月宝宝鼻塞流鼻涕怎么办 我的鼻子不通气怎么办 鼻子擦多了疼怎么办 鼻涕擦多了好疼怎么办 鼻炎一直流鼻水怎么办 擤鼻涕后耳朵堵怎么办 鼻涕醒多了头疼怎么办