语义分割标签处理时,标签数据中会包含很多杂乱的标签,此时对数据作筛选,选出包含特定类别的标签会很重要。
一、txt标签文件中筛选
choice_txt.py
# encoding: utf-8
import os.path
import shutil
import re
# 遍历指定目录,显示目录下的所有文件名
def eachFile(filepath):
pathDir = os.listdir(filepath)
for allDir in pathDir:
child = os.path.join('%s\%s' % (filepath, allDir))
if os.path.isfile(child):
readFile(child)
continue
eachFile(child)
# 遍历出结果 返回文件的名字
def readFile(filenames):
f = open(filenames, 'r')
line = f.readline() # 以行的形式进行读取文件
list1 = []
while line:
a = line.split()
str = a[0] # 读取该行的第一个数据
if str == '0' or '1' or '9' or '11' or '12':
list1.append(filenames)
shutil.copy(filenames, 'H:\mtl2fs\multyfs2single\label0')
print("匹配到:" + filenames)
line = f.readline()
f.close()
if __name__ == "__main__":
filenames = 'H:\mtl2fs\multyfs2single\label'
arr = []
eachFile(filenames)
二、根据txt筛选结果挑选img
choice_img.py
# -*- coding: utf-8 -*-
import os
import shutil
# root_dir = "E:/multyfs2single/" #根目录
# txt_dir = root_dir + "label0/" #标签
# image_dir = root_dir + "img0/" #结果存放地址
# origin_image_dir = "img" #原始图片地址
txt_dir = "H:/mtl2fs/multyfs2single/label0/"
image_dir = "H:/mtl2fs/multyfs2single/img0/"
origin_image_dir = "H:/mtl2fs/multyfs2single/img"
count = 0
# train_data_list = os.listdir(images_dir)
for file in os.listdir(txt_dir):
# count += 1
# if file not in train_data_list:
print(count, " ", file)
shutil.copy(origin_image_dir + '/' + os.path.splitext(file)[0] + '.png',
image_dir + '/' + os.path.splitext(file)[0] + '.png')