2017-10-18 115 views
0

我试图关注加载和修改图像的this OpenCV tutorial。我加载图像是这样的:OpenCV3 image.depth()为零

I = imread(filename, IMREAD_COLOR); 

稍后在代码中有一个CV_Assert

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

这是不正确的,因为I.depth()为零,sizeof(uchar)之一。

我该怎么做?如果我拨打imshow,图像显示正确

+0

这是在[最后DOC]正确的(https://docs.opencv.org/master/ db/da5/tutorial_how_to_scan_images.html)与'CV_Assert(I.depth()== CV_8U);'。忘记OpenCV版本3.0-beta,它的错误和不良记录;) – Miki

回答

1

I.depth()不返回元素的大小。它返回的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()