Как я могу изменить размер изображения в Python? - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь использовать библиотеку PIL, но получаю много ошибок.

import PIL
from PIL import Image

img_size = 64
data_path='C:/Users/Cadet/Downloads/Data/Data/'
labels = listdir(data_path)
x_cat=[];
cat_imgpath = listdir(data_path+'/'+labels[0])

for img in cat_imgpath:
 cat_img = io.imread(data_path+'/'+labels[0]+'/'+img)
 x_cat.append(resize(cat_img, (img_size, img_size), PIL.Image.BICUBIC))

Я также изменил последнюю строку на:

 x_cat.append(np.array(PIL.Image.fromarray(cat_img).resize(64, 64 , resample = PIL.Image.BICUBIC)))

и

 x_cat.append.cat_img.resize((img_size, img_size), PIL.Image.BICUBIC))

И это не сработало.

Вот ошибка, которую я получаю:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-37-fe907917e104> in <module>
      4 for img in cat_imgpath:
      5  cat_img = io.imread(data_path+'/'+labels[0]+'/'+img)
----> 6  x_cat.append(resize(cat_img, (img_size, img_size), PIL.Image.BICUBIC))
      7 
      8 

NameError: name 'resize' is not defined

Я готов использовать другие библиотеки и модули. Сначала я пытался использовать scipy.misc и импортировать imresize, но похоже, что этот пакет был отменен.

1 Ответ

1 голос
/ 28 марта 2020

Я думаю, что вы добавили только функцию изменения размера, не применяя ее к переменной Image:

 x_cat.append(resize(cat_img, (img_size, img_size), PIL.Image.BICUBIC))

Вместо:

x_cat.append(cat_img.resize((img_size,img_size)))

Вот простой пример использования resize () метод PIL.Image, который работает для меня. Обратите внимание, что параметр resize () является кортежем.

from PIL import Image
from io import BytesIO
img = Image.open(BytesIO(response.content))
img.load()
new_size = (100, 110)
smaller_img = img.resize(new_size)
...