如何在OpenCv中访问单行Mat的元素?

时间:2013-03-27 06:26:18

标签: opencv

我有一个rows=1,cols=720的sigle行垫。这个mat来自OpenCV中的reduce函数。但是当我使用mat.at<int>(0,i)访问它的元素时,它总是在文件mat.hpp的第537行的函数中失败:

template<typename _Tp> inline _Tp& Mat::at(int i0, int i1)
{
    CV_DbgAssert( dims <= 2 && data && (unsigned)i0 < (unsigned)size.p[0] &&
        (unsigned)(i1*DataType<_Tp>::channels) < (unsigned)(size.p[1]*channels()) &&
        CV_ELEM_SIZE1(DataType<_Tp>::depth) == elemSize1());
    return ((_Tp*)(data + step.p[0]*i0))[i1];
}

怎么做?感谢。

1 个答案:

答案 0 :(得分:1)

如果cv :: MAT是1维(即只有一个维度大于1),你可以mat.at<int>(i)

但最可能的原因是mat不是int类型,正如@SchighSchagh建议的那样。