使用 imgag 增加数据集大小



我正在将两个包含图像的不同数据集合并为一个数据集。 其中一个数据集在训练集中包含 600 张图像。 另一个数据集仅包含 90-100 张图像。 我想通过使用 imgaug 库来增加后一个数据集的大小。 图像存储在其类名称下的文件夹中。 因此,训练集中"蛋糕"图像的路径将是..//images//Cake//cake_0001。 我正在尝试使用此代码来增强此数据集中的图像:

path = 'C:\Users\User\Documents\Dataset\freiburg_groceries_dataset\images'
ia.seed(6)
seq = iaa.Sequential([
iaa.Fliplr(0.5),
iaa.Crop(percent=(0, 0.1)),
iaa.Affine(rotate=(-25,25))
], random_order=True)
for folder in os.listdir(path):
try:
for i in os.listdir(folder):
img = imageio.imread(i)
img_aug = seq(images=img)
iaa.imshow(img_aug)
print(img_aug)
except:
pass

现在没有输出,即使我放print(img)imshow(img)或任何东西。 如何确保为此数据集获得更多图像? 另外,增强图像的最佳位置是什么? 增强图像存储在哪里,如何查看生成了多少新图像?

这个问题不清楚。因此,对于问题2:error in saving file and not able to visualize using imshow().

第一个:在第二个循环代码块中

img = imageio.imread(i)
img_aug = seq(images=img)
iaa.imshow(img_aug)
print(img_aug)

第一个错误是:i不是文件路径。要解决此问题,请将imageio.imread(i)替换为imageio.imread(path+'/'+folder+'/'+i)

第二个错误是:iaa doesn't have the property imshow()。 要解决此问题,请将iaa.imshow(img_aug)替换为iaa.imgaug.imshow(img_aug)。这修复了可视化和完成循环执行的错误。

第二:如果您在保存图像时遇到任何问题,请使用PIL. 即,

from PIL import Image
im = Image.fromarray(img_aug)
im.save('img_aug.png')`

这是因为folder不是您要查找的目录的路径。 您应该将for i in os.listdir(folder):更改为for i in os.listdir(path+'\'+folder):。然后它会在pathfolder目录中查找文件。

最新更新