赞
踩
写了一个labelme的rectangle json文件转yolo格式的脚本,欢迎点赞使用~~~
话不多说直接上代码~
- import json
- import glob
-
- def load(file,out_dir):
- # YOLOv5使用的标签映射,将LabelMe标签映射到对应的类别索引
- label_mapping = {
- 'box': 0,
- }
- path = glob.glob(f'{file}\*.json')
- for i in path:
- try:
- with open(i, 'r',encoding='utf-8') as f:
- data = json.load(f)
-
- # 转换每个标注
- yolo_annotations = []
- for annotation in data['shapes']:
- label = annotation['label']
- class_index = label_mapping.get(label)
- if class_index is not None:
- x, y = annotation['points'][0]
- width = annotation['points'][1][0] - x
- height = annotation['points'][1][1] - y
- x_center = (x + width / 2) / data['imageWidth']
- y_center = (y + height / 2) / data['imageHeight']
- width /= data['imageWidth']
- height /= data['imageHeight']
- yolo_annotations.append(f"{class_index} {abs(x_center)} {abs(y_center)} {abs(width)} {abs(height)}")
- name = i.split('.')[0].split('\\')[1]
- # 将转换后的标注写入txt文件
- with open(f'{out_dir}\{name}.txt', 'w') as f:
- for annotation in yolo_annotations:
- f.write(annotation + '\n')
- except:
- print(i)
- pass
-
- json_dir = 'js'
- out_dir='txt'
- load(json_dir,out_dir)

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。