2

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

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];
}

怎么做?谢谢。

4

1 回答 1

1

如果 cv::MAT 是一维的(即只有一个维度大于一),您可以这样做mat.at<int>(i)

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

于 2013-03-27T11:41:18.227 回答