OpenCV3 image.depth() 为零
Posted
技术标签:
【中文标题】OpenCV3 image.depth() 为零【英文标题】:OpenCV3 image.depth() is zero 【发布时间】:2017-10-18 19:52:30 【问题描述】:我尝试关注this OpenCV tutorial 关于加载和修改图像的信息。我像这样加载图像:
I = imread( filename, IMREAD_COLOR );
代码后面有一个CV_Assert
:
CV_Assert(I.depth() != sizeof(uchar));
这不是真的,因为I.depth()
是零而sizeof(uchar)
是一。
我做错了什么?如果我调用imshow
,则图像显示正确
【问题讨论】:
这在last doc 和CV_Assert(I.depth() == CV_8U);
中是正确的。忘记 OpenCV 3.0-beta 版吧,它有问题,而且文档记录不充分;)
【参考方案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()
【讨论】:
以上是关于OpenCV3 image.depth() 为零的主要内容,如果未能解决你的问题,请参考以下文章
《Single Image Depth Prediction with Wavelet Decomposition》论文笔记
《Structure-Guided Ranking Loss for Single Image Depth Prediction》论文笔记