c++ - 在 OpenCV 中访问数组的元素

标签 c++ arrays opencv

我试图获取数组中元素的值,以便在 if 语句中使用它,但不幸的是,以下代码对我不起作用。 compcout 与数组 C 的第一个元素不匹配。我是 OpenCV 的新手,因此非常感谢您的帮助。

Mat A = (Mat_<double>(2,1) << u, v); 
Mat B = (Mat_<double>(2,6) << -1/Z,  0 ,  x/Z , x*y , -(x*x+1),y,                                                       
                               0 ,-1/Z,  y/Z ,y*y+1,   -x*y  ,-x);
Mat pinvB = B.inv(DECOMP_SVD);
Mat C=pinvB*A; // 6x1 Array

float comp = C.at<float>(0,0);
cout << "comp " << comp << endl; //This value does not match C[0,0]
cout << "C " << C << endl;

if (comp < 0.0001){
   //process
}

最佳答案

你的 Mat_<double>实例内部存储 double秒。当您这样做时:

float comp = C.at<float>(0,0);

您正在尝试使用一些形成 double 的位,并将它们解释为 float .浮点表示意味着 double 的一半位不要翻译成有意义的float (假设一个平台的 float 大小是 double 的一半,这很常见)。所以,调用C.at<double>相反。

关于c++ - 在 OpenCV 中访问数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17004157/

相关文章:

python - 实时色彩检测及其功能

opencv - 无法使用cuda 7.0运行opencv

c++ - boost "no such file or directory"

c++ - 如何使用 cmake 链接到 awesomium

javascript - 为什么我不能交换 javascript 字符串中的字符?

matlab - 获取xy平面中三角形ROI中的所有点

c++ - 我应该如何实现一个在 C++ 中接受未知数量参数的数组构造函数?

c++ - 使用 printf 打印 size_t 的正确方法是什么?

arrays - 检索数组功能不起作用

c - 在 C 中交换 2 个数组时的困难