使用Augmentor实现了数据增强,
(可参考上篇文章 使用 Augmentor 批量化进行数据增强_一直在打怪的博客-CSDN博客)
但是生成的原图与标签图在一个output文件中,且图片不是一一对应的,为便于后续的训练,需要
1.将其重命名,并实现原图与掩码图一一对应
运行以下代码前,需将output文件夹中的原图和掩码图分开放在两个文件夹中
import os
# 指定图片文件夹的路径
image_folder = 'D:/UserData/Desktop/1/output'
# 获取文件夹中所有文件的列表
file_list = os.listdir(image_folder)
# 定义起始编号
start_number = 1
# 遍历文件列表并进行重命名
for filename in file_list:
# 构建新的文件名
new_filename = str(start_number) + os.path.splitext(filename)[-1]
# 构建完整的旧文件路径和新文件路径
old_filepath = os.path.join(image_folder, filename)
new_filepath = os.path.join(image_folder, new_filename)
# 重命名文件
os.rename(old_filepath, new_filepath)
# 增加编号
start_number += 1
image_folder = 'D:/UserData/Desktop/1/output'
需要修改相应的文件所在路径
# 定义起始编号
start_number = 1 可自定义起始编号
使用上面代码可能使得新命名生成的图片的顺序与之前不一样,但是没关系,只要使用上面相同的代码,同时对原图文件夹和掩码文件夹进行重命名操作,即可实现一一对应了。
2.进行.jpg与.png图片的一一对应
接下里,需要将原图文件中的.png图片,批量化修改成为.jpg文件,便于后续训练了
from PIL import Image
import os
# 指定包含.png图像的文件夹路径和输出文件夹路径
input_folder = 'D:/UserData/Desktop/1/output'
output_folder = 'D:/UserData/Desktop/1/jpg'
# 确保输出文件夹存在
os.makedirs(output_folder, exist_ok=True)
# 遍历输入文件夹中的所有文件
for filename in os.listdir(input_folder):
if filename.endswith(".png"):
# 构建完整的输入和输出文件路径
input_filepath = os.path.join(input_folder, filename)
output_filename = os.path.splitext(filename)[0] + ".jpg"
output_filepath = os.path.join(output_folder, output_filename)
# 打开并保存图像
img = Image.open(input_filepath)
img = img.convert("RGB") # 将图像转换为RGB模式(如果不是的话)
img.save(output_filepath, "JPEG")
print("转换完成!")
很简单滴,只需要进行输入路径和输出路径的修改即可:
input_folder = 'D:/UserData/Desktop/1/output'
output_folder = 'D:/UserData/Desktop/1/jpg'