无需编写自己的函数来执行此操作,而是依赖更高级别的机器学习/深度学习模块提供的内置函数。
就像在 Keras 模块中一样,有一个名为ImageDataGenerator()的内置函数
此函数有两个参数用于在图像中生成偏移。一个用于水平移位,另一个用于垂直移位。这两个论点是:
width_shift_range,
height_shift_range
这些参数中的每一个都采用:浮点数、一维数组或整数。
1)。float:总高度的分数,如果 < 1,或像素,如果 >= 1。
2)。一维数组:来自数组的随机元素。
3)。int:间隔中的整数像素数(-height_shift_range,+height_shift_range)
现在,您想扩充这些图像并将它们全部保存在同一个文件夹中,请使用以下代码:
aug = ImageDataGenerator(width_shift_range=0.2,height_shift_range=0.2)
### Make sure to have "/" at the end of the path
list_of_images=os.listdir("/path/to/the/folder/of/images/")
total = 0
#Change the value of "const" to the number of new augmented images to be created
const= 300
for i in range(const):
curr_image = random.choice(list_of_images)
image = load_img("/path/to/the/folder/of/images/"+curr_image)
image = img_to_array(image)
image = np.expand_dims(image, axis=0)
imageGen = aug.flow(image, batch_size=1, save_to_dir='/path/to/folder/to/save/images/',save_prefix="augment_image",save_format="jpg")
for image in imageGen:
total += 1
if total == const:
break
break
上面的代码片段将在名为“/path/to/folder/to/save/images/”的文件夹中创建 300 个新图像。然后你所要做的就是将你的原始图像粘贴到这个文件夹中。
您可以为 ImageDataGenerator() 提供其他参数,例如亮度、缩放、垂直翻转、水平翻转等。查看文档以获取更多此类参数。