如何在Python中调整图片大小?

时间:2020-03-28 07:45:20

标签: python python-imaging-library

我正在尝试使用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 个答案:

答案 0 :(得分:1)

我认为您仅将调整大小功能附加到了它,而不将其应用于Image变量:

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

代替:

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

这是PIL.Image的resize()方法的一个简单用例,对我有用。 请注意,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)