使用 imgaug 增加数据集大小
Increasing dataset size using imgaug
我正在将包含图像的两个不同数据集合并到一个数据集中。其中一个数据集包含训练集中的 600 张图像。另一个数据集仅包含 90-100 张图像。我想通过使用 imgaug library 来增加后一个数据集的大小。这些图像存储在 class 名称下的文件夹中。因此,训练集中 "cake" 图像的路径将是 ..//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)
或任何东西。如何确保为该数据集获取更多图像?另外,增强图像的最佳位置是什么?增强图像存储在哪里,我如何查看生成了多少新图像?
因为folder
不是您要查找的目录路径。
您应该将 for i in os.listdir(folder):
更改为 for i in os.listdir(path+'\'+folder):
。然后它会在 path\folder
目录中查找文件。
问题不清楚。因此,对于问题 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')`
我正在将包含图像的两个不同数据集合并到一个数据集中。其中一个数据集包含训练集中的 600 张图像。另一个数据集仅包含 90-100 张图像。我想通过使用 imgaug library 来增加后一个数据集的大小。这些图像存储在 class 名称下的文件夹中。因此,训练集中 "cake" 图像的路径将是 ..//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)
或任何东西。如何确保为该数据集获取更多图像?另外,增强图像的最佳位置是什么?增强图像存储在哪里,我如何查看生成了多少新图像?
因为folder
不是您要查找的目录路径。
您应该将 for i in os.listdir(folder):
更改为 for i in os.listdir(path+'\'+folder):
。然后它会在 path\folder
目录中查找文件。
问题不清楚。因此,对于问题 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')`