ValueError: не удалось передать входной массив из формы (424,16,3) в форму (128,160,3) - PullRequest
2 голосов
/ 18 июня 2020

Я работал с кодом process_kitti.py от coxlab из GitHub в среде Anaconda. Некоторые функции устарели в Python 3.6. Поэтому я изменил следующую строку:

im = imresize(im, (desired_sz[0], int(np.round(target_ds * im.shape[1]))))

на

from PIL import Image    
im = np.array(Image.fromarray(im).resize((desired_sz[0], int(np.round(target_ds * im.shape[1])))))

В остальном все остальное осталось прежним.

Интересно, что пока я запускал этот код, возникла следующая ошибка:

Creating train data: 41396 images
Traceback (most recent call last):
  File "process_kitti.py", line 104, in <module>
    process_data()
  File "process_kitti.py", line 84, in process_data
    X[i] = process_im(im, desired_im_sz)
ValueError: could not broadcast input array from shape (424,16,3) into shape (128,160,3)

Я немного запутался в причине такой ошибки. Большое спасибо за помощь.

1 Ответ

1 голос
/ 18 июня 2020

Обратите внимание, что параметр size в функции imresize из scipy представляет собой 2-кортеж из (height, width), а в Pillow пакете это (width, height), поэтому вам может потребоваться изменить порядок

Источник:

https://docs.scipy.org/doc/scipy-1.2.1/reference/generated/scipy.misc.imresize.html

https://pillow.readthedocs.io/en/stable/reference/Image.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...