2013-03-27 95 views
2

我有一個rows=1,cols=720的單排墊子。這個墊子來自於OpenCV中的減少功能。如何訪問一個單行的元素在OpenCv中的Mat?

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

如何做到這一點:但是當我訪問使用mat.at<int>(0,i)了它的元素它總是斷言在文件mat.hpp在功能可按行537失敗?謝謝。

+0

你需要更具體。你是如何製作「墊子」的? 「它失敗」是什麼意思? – bjoernz 2013-03-27 06:30:03

+3

確保墊子的類型是'CV_32SC1',並且'0 <= i <720'。還要確保'sizeof(int)== 4'(如果不是,請嘗試'mat.at (0,i)'。 – 2013-03-27 06:49:54

回答

1

如果CV :: MAT是一維的(即只有其中的一個方面是比一個大),你可以只是做mat.at<int>(i)

,但仍是最可能的原因是腳墊不是int類型,如@ SchighSchagh建議。