在做图像分割的时候,需要根据分好的训练集,验证集,测试集,把图像也分离开。
代码如下:
import os
import shutil
# 读入分类的标签txt文件
label_file = open("D:\weldline\code\dataset\VOCdevkit_219_new\VOC2012\ImageSets\Segmentation\\test.txt", 'r')
# 原始文件的根目录
input_path = "D:\weldline\code\dataset\VOCdevkit_219_new\VOC2012\SegmentationClass"
# 保存文件的根目录
output_path = "D:\weldline\code\dataset\VOCdevkit_219_new\VOC2012\\res"
# 一行行读入标签文件
data = label_file.readlines()
# 计数用
i = 1
# 遍历数据
for line in data:
# 通过空格拆分成数组
str1 = line.split(" ")
# 第一个是文件名
file_name = str1[0].strip()
# 原始文件的路径
old_file_path = os.path.join(input_path, file_name + ".png")
# 新文件路径
new_file_path = output_path
# 如果路径不存在,则创建
if not os.path.exists(new_file_path):
print("路径 " + new_file_path + " 不存在,正在创建......")
os.makedirs(new_file_path)
# 新文件位置
new_file_path = os.path.join(new_file_path, file_name + ".png")
print("" + str(i) + "\t正在将 " + old_file_path + " 复制到 " + new_file_path)
# 复制文件
shutil.copyfile(old_file_path, new_file_path)
i = i + 1
# 完成提示
print("完成")