通过keras.load_img加载多幅图像并对每幅图像进行数据增强的方法如下:
from tensorflow.keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
data_generator = ImageDataGenerator(
rotation_range=10, # 随机旋转角度范围
width_shift_range=0.2, # 随机水平平移范围
height_shift_range=0.2, # 随机垂直平移范围
shear_range=0.2, # 随机剪切强度范围
zoom_range=0.2, # 随机缩放范围
horizontal_flip=True, # 随机水平翻转
vertical_flip=True, # 随机垂直翻转
fill_mode='nearest' # 填充像素的策略
)
image_paths = ['image1.jpg', 'image2.jpg', 'image3.jpg'] # 图像路径列表
images = [] # 存储图像数组的列表
for path in image_paths:
img = load_img(path) # 加载图像
img_array = img_to_array(img) # 将图像转换为数组
images.append(img_array) # 将数组添加到列表
save_dir = 'augmented_images' # 增强后的图像保存目录
if not os.path.exists(save_dir):
os.makedirs(save_dir)
for i, img in enumerate(images):
img = img.reshape((1,) + img.shape) # 调整图像数组的形状
save_prefix = 'augmented_image_' + str(i) # 保存图像的前缀
j = 0 # 图像计数器
# 生成增强后的图像并保存
for batch in data_generator.flow(img, save_to_dir=save_dir, save_prefix=save_prefix, save_format='jpg'):
j += 1
if j >= 5: # 生成5张增强后的图像
break
在上述代码中,我们使用了Keras的ImageDataGenerator来实现数据增强。通过设置不同的参数,可以对图像进行旋转、平移、剪切、缩放、翻转等操作。生成器会自动对每幅图像进行数据增强,并将增强后的图像保存到指定的目录中。
推荐的腾讯云相关产品:无
参考文档:
领取专属 10元无门槛券
手把手带您无忧上云