目录
前言
一、批量提取
二、图片重命名
最近在接触一个项目,要用到语义分割,如果大家有什么问题,都可以跟我沟通交流。除了通过博客交流外,欢迎你加入我的QQ群:326866692,一起交流有关于区块链、机器学习、深度学习、计算机视觉有关内容。我现在处于广泛涉猎阶段,希望我们能够一起沟通。下图是我的群二维码:
上一次我们说到了使用labelme将json文件转化为数据集,转化完成后,每一张图片都生成了一个单独的文件夹,如果我们一个一个把里面的label图像取出来很麻烦,特别是数据量极大地时候,比如我们经常会做好几万的数据集,这个时候再手动取出来就是没事闲的了。
所以我们用代码,将图片集体取出。
先创建一个python文件,并写入以下代码:
import os import random import shutil import re GT_from_PATH = "D:/zyt/JSONALL/jsonNew" GT_to_PATH = "D:/zyt/JSON/ALL1" def copy_file(from_dir, to_dir, Name_list): if not os.path.isdir(to_dir): os.mkdir(to_dir) # 1 # name_list = os.listdir(from_dir) # # 2 # sample = random.sample(pathDir, 2) # print(sample) # 3 for name in Name_list: try: # print(name) if not os.path.isfile(os.path.join(from_dir, name)): print("{} is not existed".format(os.path.join(from_dir, name))) shutil.copy(os.path.join(from_dir, name), os.path.join(to_dir, name)) # print("{} has copied to {}".format(os.path.join(from_dir, name), os.path.join(to_dir, name))) except: # print("failed to move {}".format(from_dir + name)) pass # shutil.copyfile(fileDir+name, tarDir+name) print("{} has copied to {}".format(from_dir, to_dir)) if __name__ == '__main__': filepath_list = os.listdir(GT_from_PATH) # print(name_list) for i, file_path in enumerate(filepath_list): gt_path = "{}/{}_gt.png".format(os.path.join(GT_from_PATH, filepath_list[i]), file_path[:-5]) print("copy {} to ...".format(gt_path)) gt_name = ["{}_gt.png".format(file_path[:-5])] gt_file_path = os.path.join(GT_from_PATH, file_path) copy_file(gt_file_path, GT_to_PATH, gt_name)其中,我们需要修改的有如下两个内容:
GT_from_PATH = "" #json生成的文件夹的父文件夹 GT_to_PATH = "" #label输出路径然后执行代码即可。执行完后的结果如下:
可以使用代码,也可以使用软件,我使用的是2345看图王,可以批量修改图片名称,重命名的目的是将图片后面的 “_gt” 去掉。
水亦心 认证博客专家 神经网络 算法 视觉/OpenCV