我正在将两个包含图像的不同数据集合并为一个数据集。 其中一个数据集在训练集中包含 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
目录中查找文件。