Объект 'int' недопустим при изменении размера изображения с помощью PIL в Python - PullRequest
0 голосов
/ 22 января 2019

Я получаю эту ошибку при попытке скомпилировать мой код.enter image description here

Я знаю, что .size - это массив, хотя он возвращает (1200, 800) для H и W - и мне нужен только один из них.Я просмотрел примеры синтаксиса и попытался использовать круглые скобки и ничего.Кроме того, другие ответы на этот вопрос в StackOverflow не решают мои проблемы.

Пожалуйста, помогите!Я обычно не программист на Python.

Спасибо.

РЕДАКТИРОВАТЬ: Я прошу прощения за размещение скриншота вместо кода

1 Ответ

0 голосов
/ 22 января 2019

cv2.imread (отметьте [OpenCV]: Начало работы с изображениями ) возвращает [SciPy]: numpy.ndarray . Как видно, его атрибутом размера является 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
...