c++ - 当我要求彩色图像时,Opencv 的 imread 给我一个 2-D Mat,这正常吗?

标签 c++ image opencv

所以我的文件夹中有一个 .bmp 图像文件。

我使用 imread 加载它:

  cv::Mat image = cv::imread( imageName, CV_LOAD_IMAGE_COLOR );

之后我查看它的尺寸:

std::cout<<"Rows: "<<image.rows <<"  Cols:"<<image.cols<<" Dims:"<<image.dims<<std::endl;

这给了我:

行:480 列:640 尺寸:2

但是鉴于我有 RGB 图像,它不应该也是 3D Mat 吗?

最佳答案

是的,这很正常。

dims 定义为(来自 doc ):

int dims; //! the array dimensionality, >= 2

您应该查看 number of channels相反:

std:cout << "Channels: " << image.channels() << std::endl;

关于c++ - 当我要求彩色图像时,Opencv 的 imread 给我一个 2-D Mat,这正常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38992463/

相关文章:

python - 如何将自定义元数据添加到 OpenCV/numpy 图像?

c++ - 一般开始,加上 decltype 考虑本地 using-declaration

c++ - 将堆栈对象等同于对象 C++ 中的另一个对象

c++ - 范围内的模板变量或模板 typedef

html - 为什么这张图片加载不出来? (这实际上是一个 hello world 程序,具有简单的本地相对图像路径。)

java - 从不同包中的类加载包内的 Java 图像

C# 到 C++ 的转换

iOS 图像设计(尺寸和 Assets 目录)

python - pytesseract 提高了图像上模糊数字的 OCR 准确性

python - 无法在Raspberry Pi4上播放使用OpenCV 4.4.0录制的视频