c++ - OpenCV3 image.depth() 为零

标签 c++ opencv opencv3.0

我试着关注 this OpenCV tutorial关于加载和修改图像。我像这样加载图像:

I = imread( filename, IMREAD_COLOR );

代码后面有一个CV_Assert:

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

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

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

最佳答案

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

关于c++ - OpenCV3 image.depth() 为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46818143/

相关文章:

c++ - 包含动态分配数组的结构中的复制构造函数是否总是必要的?

c++ - OpenCV 随机决策森林 : How to get posterior probability

c++ - OpenCV3中如何从xml/yml文件中读写算法参数

python - 矢量化照片 : Finding an Adapted Algorithm

c++ - 找不到 opencv_world341d.dll 错误

image - 将图像放入 x11 中的窗口中

c++ - 线程 sleep 超时后不继续执行

c++ - 为 __stdcall 函数指针提供比预期更多的参数

c++ - SVM OpenCV c++ 预测只返回 1

android - Android中的简单Camera2 API代码