【deeplab数据集3】批量提取label图像

目录

前言

一、批量提取

二、图片重命名


前言

最近在接触一个项目,要用到语义分割,如果大家有什么问题,都可以跟我沟通交流。除了通过博客交流外,欢迎你加入我的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” 去掉。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值