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》论文笔记

python opencv3 检测人

《Structure-Guided Ranking Loss for Single Image Depth Prediction》论文笔记

OpenCV3 Python应用

在C中除以整数将值向下舍入/结果为零

opencv3计算机视觉+Python