我正在尝试使用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
,但看来此软件包已被取消。
答案 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)