ImageDataGenerator的用法
时间: 2024-05-01 12:21:37 浏览: 69
ImageDataGenerator是Keras中一个方便的图像预处理工具,它可以对图像进行各种变换,包括旋转、平移、缩放、剪切、翻转、改变亮度等等,可以用于数据增强(data augmentation),从而提高模型的泛化能力和鲁棒性。
使用方法如下:
1.导入模块
```
from keras.preprocessing.image import ImageDataGenerator
```
2.实例化ImageDataGenerator对象,指定各种变换参数
```
datagen = ImageDataGenerator(
rotation_range=20, # 旋转范围
width_shift_range=0.2, # 水平平移范围
height_shift_range=0.2, # 垂直平移范围
shear_range=0.2, # 剪切变换程度
zoom_range=0.2, # 缩放范围
horizontal_flip=True, # 水平翻转
fill_mode='nearest' # 填充方式
)
```
3.使用ImageDataGenerator对图像进行变换
```
from keras.preprocessing import image
img_path = 'path_to_image.jpg'
img = image.load_img(img_path, target_size=(150, 150))
x = image.img_to_array(img)
x = x.reshape((1,) + x.shape)
i = 0
for batch in datagen.flow(x, batch_size=1):
plt.figure(i)
imgplot = plt.imshow(image.array_to_img(batch[0]))
i += 1
if i % 4 == 0:
break
```
其中,`flow()`方法会不断地生成新的变换后的图像,可以用于数据增强。循环次数可以通过`steps_per_epoch`参数调整。
阅读全文