OpenCV CV_ELEM_SIZE1(DataType< _Tp> :: depth)== elemSize1()

时间:2015-12-30 19:42:21

标签: c++ opencv image-processing computer-vision

this question类似,我的程序有一个指针结构来存储2D图像数组,如下所示

Mat*** scaleSpace;
scaleSpace = new Mat**[numOctaves];
scaleSpace[i] = new Mat*[numIntervals];
scaleSpace[i][j] = new Mat_<float>(width, height);
Mat* middle = scaleSpace[i][j];
float currentPixel = middle->at<float>(yi, xi);

openCV在从上面运行最后一个代码行时触发此断言。

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());

我发现问题是最后一个表达式。所有其他人都是true

CV_ELEM_SIZE1(DataType<_Tp>::depth)是4

elemSize1()是1

这两个值是什么?如何更改程序以使两者具有相同的值?我只使用一个通道使用浮动图像是一个问题吗?写这个图像非常有效。

imwrite(filename, *middle);

0 个答案:

没有答案