OpenCV3 image.depth() 为零

OpenCV3 image.depth() is zero

我试着按照 this OpenCV tutorial 来加载和修改图像。我这样加载图像:

I = imread( filename, IMREAD_COLOR );

代码后面有一个CV_Assert:

CV_Assert(I.depth() != sizeof(uchar));

这不是真的,因为 I.depth() 是零而 sizeof(uchar) 是一。

我做错了什么?如果我调用imshow,那么图像就会正确显示

I.depth() 没有 return 元素的大小。它 return 是 depth defines 之一:

#define CV_8U   0
#define CV_8S   1
#define CV_16U  2
#define CV_16S  3
#define CV_32S  4
#define CV_32F  5
#define CV_64F  6

如果你想获取元素的大小,你可以使用I.elemSize1()