在Python中使用PIL调整图像大小时,“ int”对象不可下标

时间:2019-01-22 16:35:22

标签: python opencv python-imaging-library

尝试编译我的代码时,我收到此错误。 enter image description here

我知道.size是一个数组,因为它会为H和W返回(1200,800)-我只想要其中一个。我浏览了语法示例,并尝试使用括号,也没有尝试使用括号。另外,在StackOverflow上对该问题的其他答案也无法解决我的问题。

请帮助!我通常不是Python程序员。

谢谢。

编辑:我为发布屏幕截图而不是代码表示歉意

1 个答案:

答案 0 :(得分:2)

cv2.imread(选中[OpenCV]: Getting Started with Images)返回[SciPy]: numpy.ndarray。如图所示,它的size属性是一个 int ,它是一个标量类型,因此您无法对其进行索引。

如果要获取图像的宽度和高度,则应改用 shape 属性:

>>> img = cv2.imread("c:\\valmand.png")
>>> type(img)
<class 'numpy.ndarray'>
>>> img.size
1493331
>>> img.shape
(799, 623, 3)
>>> img.shape[0], img.shape[1]
(799, 623)
>>> img.shape[0] * img.shape[1] * img.shape[2]
1493331