为什么openCV Mat.at与原始矩阵不匹配

时间:2013-04-03 03:08:49

标签: c++ opencv

我有一个二维双重矩阵。

双**结果; (8334 * 34大小)

值如下: 0.00211094,0,6.10098e-006 .......

我使用代码Mat m = Mat(ROW,COL,CV_64F,结果),

但是当我检查元素时,我发现值不匹配,m中的值非常奇怪,类似于5.325e-344(太小了!)

cout<(0,0)!= result [0] [0]

我测试一个小矩阵,答案与矩阵匹配。

double a = 0.00211094;
double b = 6.10098e-006;
double c=0;
double aa[3][3] = {{a, b, c}, {0.4, 0.5, 0.6}, {0.7, 0.8, 0.9}};
Mat m = Mat(3, 3, CV_64F, aa);

cout<<m.at<double>(0,1)<<endl;

有人可以告诉我为什么吗?这是我的C ++内存问题(结果矩阵太大了吗?)?

1 个答案:

答案 0 :(得分:0)

只有小矩阵可以设置为Mat。

所以我尝试将每个元素设置为mat。

for(i...){
for(j...){
    m.at<double>(i,j) =results[i][j];
}
}

它有效。

有趣!