labelme. python单/多文件夹下批量提取png图片转化img。id(或者其他类型文件数据)

conda activate labelme
labelme开启标注软件

cd到json文件包同级目录下,转换后到json_mask文件会保存在当前路径下。
labelme_json_to_dataset ./json/

labelme. python单/多文件夹下批量提取png图片转化img。id(或者其他类型文件数据)_第1张图片
使用labelme转化为mask图片的提取


import os
# get_dir_png2img 多文件夹提取png图片,另存img和ID
def read_directory_much(directory_name):
    data=open("/Users/username/Desktop/gt_img/id.txt",'w+')
    for filename in os.listdir(directory_name):
        for filenames in os.listdir(directory_name + "/" + filename):
            # print(filenames)
            if filenames.endswith('.png'):
                print(filenames)
                a,b,c = filenames.split('_')
                
                if c.strip()=='mask.png':
                    mask = "/Users/username/Desktop/json_text/"+filename+"/"+a+"_"+b+"_"+c
                    gt = "/Users/username/Desktop/gt_img/gt/"+a+"_"+b+".png"
                    #win环境下os.system("copy %s %s" % (mask,gt)) 
                    os.system("cp %s %s" % (mask,gt)) 
                    print(a+"_"+b,file=data)#将id写入txt文件
                if c.strip()=='source.png':
                    mask = "/Users/username/Desktop/json_text/"+filename+"/"+a+"_"+b+"_"+c
                    img = "/Users/username/Desktop/gt_img/img/"+a+"_"+b+".jpg"
                    
                    os.system("cp %s %s" % (mask,img)) 
            else:
                print('跳过')
    
    data.close()
             
read_directory_much("/Users/username/Desktop/json_text") #/75341_465723_json





labelme. python单/多文件夹下批量提取png图片转化img。id(或者其他类型文件数据)_第2张图片
查看转化后的mask

# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
#查看转换json文件的mask图片
img = Image.open("/Users/username/Desktop/person_CT/json_dataset/8841_213297_json/8841_213297_mask.png")
img = Image.fromarray(np.uint8(img)*20)
img.save("/Users/username/Desktop/output_mask1.png")

plt.imshow(img)
plt.show(img)

labelme. python单/多文件夹下批量提取png图片转化img。id(或者其他类型文件数据)_第3张图片

你可能感兴趣的:(问题整理)