как я могу изменить размер 2-го списка - PullRequest
0 голосов
/ 09 ноября 2019

Я работал, чтобы привести свои фотографии в форму. Я использовал array [i] [100: 700] для сокращения ширины, но он дал мне ValueError: не удалось передать входной массив из shape (600) в shape (810) в качестве возврата, как я могу это исправить? без ошибки значения все работает. Размер списка (1440, 810) 2-мерный

    for address in os.listdir(src) :
       im = Image.open(src + address).convert('L')
       array = np.array(im)
       array = array[100:700]

       for i in range(len(array)) :
           array[i] = array[i][100 : 700]
       jpg = Image.fromarray(array)
       jpg.save(directory + address)

1 Ответ

0 голосов
/ 09 ноября 2019

Таким образом, чтобы преобразовать простой массив формы 1440 x 810 в 1440 x 600, вам нужно нарезать его как

array = array[:,100:700]

Таким образом, ваш код необходимо изменить как

for address in os.listdir(src) :
    im = Image.open(src + address).convert('L')
    array = np.array(im)       
    jpg = Image.fromarray(array[:,100:700])
    jpg.save(directory + address)

Небольшой фрагмент кода, показывающий, что размеры действительно правильные.

>>> img = np.random.randint(0,256,size=(1440,810))
>>> img.shape
(1440, 810)
>>> img[:,100:700].shape
(1440, 600)
>>>
...