OpenCV中图像大小的定义是什么?

What's the definition of image size in OpenCV?

尺码是多少

import cv2

img = cv2.imread('./imgs/img.png', cv2.IMREAD_COLOR)

print(img.shape[0], img.shape[1])  # 182 277
print(img.size)  # 151242

我以为img.size = img.width * img.width,但显然错了,检查这个例子。

那么,它的定义是什么?

这完全取决于您使用的语言。

OpenCV 的 Python 接口使用 numpy,而 numpy 数组具有与 cv::Mat (C++) 不同的方法。 size 意味着不同的东西。

  • Python:OpenCV 使用 numpy 数组。 .size 告诉您数组中元素的数量。那是 .shape.

    中所有值的乘积
  • C++:OpenCV 使用它自己的 cv::Mat.sizeMatSize 类型。它大致相当于 numpy 的 .shape。文档表明它还可以告诉您通道数。它有一个 operator[] 定义。