【问题标题】:why openCV Mat.at doesn't match original matrix为什么 openCV Mat.at 与原始矩阵不匹配
【发布时间】:2013-03-24 13:55:09
【问题描述】:

我有一个二维双精度型矩阵。

双**结果; (8334*34尺寸)

这些值类似于: 0.00211094, 0, 6.10098e-006.......

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

但是当我检查元素时,我发现值不匹配,并且m中的值很奇怪,像5.325e-344(太小了!)

cout

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

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++ 内存的问题吗(结果矩阵太大?)?

【问题讨论】:

  • Mat 是否可能不连续,而您正在访问内存的填充部分?

标签: c++ opencv


【解决方案1】:

Mat 只能设置小矩阵。

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

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

它有效。

有趣!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-04
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2021-10-23
    相关资源
    最近更新 更多