windows下批量json文件转png
·
环境的配置没有多大的要求,就是需要一个名为labelme的虚拟环境,labelme需要提前安装在labelme的环境。
运行以下代码rgb_images435更换成自己的文件夹。
import os
json_folder = r"H:\rgb\rgb_images435"#包含json的文件夹
# 获取文件夹内的文件名
FileNameList = os.listdir(json_folder)
# 激活labelme环境
os.system("activate labelme")
for i in range(len(FileNameList)):
# 判断当前文件是否为json文件
if(os.path.splitext(FileNameList[i])[1] == ".json"):
json_file = json_folder + "\\" + FileNameList[i]
# 将该json文件转为png
os.system("labelme_json_to_dataset " + json_file)
运行后生成以下文件夹

提取文件夹中png图片,path_json_to_data = "H:\\rgb\\rgb_images435\\"
path_save_png = "H:\\rgb\\rgb_images435\\label\\"修改成自己的路径
import os
# import cv2
import numpy as np
import shutil
import glob
path_json_to_data = "H:\\rgb\\rgb_images435\\"
path_save_png = "H:\\rgb\\rgb_images435\\label\\"
'''
将标签图从json文件中批量取出
:return:
'''
for eachfile in os.listdir(path_json_to_data):
path1 = os.path.join(path_json_to_data, eachfile) # 获取单个json文件夹的目录
if os.path.isdir(path1): # 判断path1路径是否存在
if os.path.exists(path1 + '\\label.png'): # 判断path1路径下label.png是否存在
path1 = os.path.join(path1, 'label.png') # 获取PNG所在的路径,准备等待复制
path2 = os.path.join(path_save_png, (eachfile.split('_')[0] + '.png')) # 将png复制到path2路径下的文件夹中去
shutil.copy(path1, path2) # 将path1文件复制到path2
print(eachfile + ' successfully moved')
生成以下内容

修改png中mask的颜色 r[np.where(r != 0)] = 1 #想要白色就改成255
import os
import cv2
from PIL import Image
import numpy as np
bace_path = "H:\\rgb\\rgb_images435\\label\\"
save_path = 'H:\\rgb\\rgb_images435\\train\\'
for im in os.listdir(bace_path):
img = cv2.imread(os.path.join(bace_path, im))
# img = Image.open(os.path.join(bace_path, im))
b, g, r = cv2.split(img)
r[np.where(r != 0)] = 1 #白色就改成255
cv2.imwrite(os.path.join(save_path, im), r)
以上就是全部工作内容。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)