2

単一の行マットがありrows=1,cols=720ます。このマットは、OpenCVのreduce機能の結果です。しかし、それを使用してその要素にアクセスすると、mat.at<int>(0,i)常にアサーションが537行目のファイルmat.hppのfuncitonで失敗しました。

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が1次元の場合(つまり、その次元の1つだけが1次元よりも大きい場合)、次のことができます。mat.at<int>(i)

しかし、それでも最も可能性の高い原因は、@ SchighSchaghが示唆したように、マットがint型ではないことです。

于 2013-03-27T11:41:18.227 に答える