我有一个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];
}
怎么做?感谢。
答案 0 :(得分:1)
如果cv :: MAT是1维(即只有一个维度大于1),你可以mat.at<int>(i)
但最可能的原因是mat不是int类型,正如@SchighSchagh建议的那样。