【问题标题】:What's the definition of image size in OpenCV?OpenCV中图像大小的定义是什么?
【发布时间】:2022-01-26 06:33:55
【问题描述】:

尺寸是多少

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,但显然错了,看看这个例子。

那么,它的定义是什么?

【问题讨论】:

  • np.prod(img.shape) numpy.org/doc/stable/reference/generated/… 我不是 Python 专家,但可能对于图像来说,这意味着宽度 x 高度 x 通道。在 C++ 接口中, Mat.size 以结构形式给出宽度和高度。这完全取决于您是否将图像解释为 2D 或 3D 数组,其中一个元素是像素或一个元素是单个数值。
  • 是的,这里肯定是 151242 == 182 * 277 * 3。它是一种没有透明度的 RGB 颜色。

标签: python numpy opencv


【解决方案1】:

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

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

  • Python:OpenCV 使用 numpy 数组。 .size 告诉您数组中的元素数量。这是.shape 中所有值的乘积。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 2014-07-21
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 2020-07-15
    • 2018-11-20
    相关资源
    最近更新 更多