首页 > 其他分享 >实现labelme标注的json格式转换为yolov5需要的txt格式

实现labelme标注的json格式转换为yolov5需要的txt格式

时间:2022-12-16 20:11:06浏览次数:59  
标签:yolov5 mask label json base path np 格式

import os, cv2, json
import numpy as np

classes = ['road']

base_path = 'E:\\aaa\\dataf1\\'
path_list = [i.split('.')[0] for i in os.listdir(base_path)]
for path in path_list:
    image = cv2.imread(f'{base_path}\\{path}.jpg')
    h, w, c = image.shape
    with open(f'{base_path}\\{path}.json') as f:
        masks = json.load(f)['shapes']
    with open(f'{base_path}\\{path}.txt', 'w+') as f:
        for idx, mask_data in enumerate(masks):
            mask_label = mask_data['label']
            if '_' in mask_label:
                mask_label = mask_label.split('_')[0]
            mask = np.array([np.array(i) for i in mask_data['points']], dtype=np.float)
            mask[:, 0] /= w
            mask[:, 1] /= h
            mask = mask.reshape((-1))
            if idx != 0:
                f.write('\n')
            f.write(f'{classes.index(mask_label)} {" ".join(list(map(lambda x:f"{x:.6f}", mask)))}')

 

标签:yolov5,mask,label,json,base,path,np,格式
From: https://www.cnblogs.com/fzx6/p/16988220.html

相关文章