欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > json 转 txt 用于 yolo 训练(可适用多边形标注框_python)

json 转 txt 用于 yolo 训练(可适用多边形标注框_python)

2025/11/16 7:47:36 来源:https://blog.csdn.net/huayimenghan/article/details/147101158  浏览:    关键词:json 转 txt 用于 yolo 训练(可适用多边形标注框_python)

json 转 txt 用于 yolo 训练(可适用多边形标注框_python)

import json
import os
import argparse
from tqdm import tqdmdef convert_label_json(json_dir, save_dir, classes):json_paths = os.listdir(json_dir)classes = classes.split(',')for json_path in tqdm(json_paths):# for json_path in json_paths:path = os.path.join(json_dir, json_path)try:with open(path, 'r', encoding='utf-8') as load_f:json_dict = json.loads(load_f.read())except json.JSONDecodeError:print(f"Error decoding file {path}. Skipping.")continue# with open(path, 'r', encoding='utf-8') as load_f:#     json_dict = json.load(load_f)h, w = json_dict['imageHeight'], json_dict['imageWidth']# save txt pathtxt_path = os.path.join(save_dir, json_path.replace('json', 'txt'))txt_file = open(txt_path, 'w')for shape_dict in json_dict['shapes']:label = shape_dict['label']label_index = classes.index(label)points = shape_dict['points']points_nor_list = []for point in points:points_nor_list.append(point[0] / w)points_nor_list.append(point[1] / h)points_nor_list = list(map(lambda x: str(x), points_nor_list))points_nor_str = ' '.join(points_nor_list)label_str = str(label_index) + ' ' + points_nor_str + '\n'txt_file.writelines(label_str)if __name__ == "__main__":"""python json2txt_nomalize.py --json-dir my_datasets/color_rings/jsons --save-dir my_datasets/color_rings/txts --classes "duck""""parser = argparse.ArgumentParser(description='json convert to txt params')parser.add_argument('--json-dir', type=str, default=r'D:\labels',help='json path dir')parser.add_argument('--save-dir', type=str, default=r'D:\转换后的文件',help='txt save dir')parser.add_argument('--classes', type=str, default='Long,Medium,Short,Debris', help='classes')args = parser.parse_args()json_dir = args.json_dirsave_dir = args.save_dirclasses = args.classesconvert_label_json(json_dir, save_dir, classes)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词