注:本文主要参考博客 http://neroasmar.top/labelme-batch/,感谢作者的分享。
我们平时用labelme标注图片得到的都是json文件,而实验需要用到的是Mask图;labelme自带的命令labelme_json_to_dataset
labelme_json_to_dataset xxx.json
每次只能转化单个文件,如果要转化多个文件比较麻烦,并且不同label不能转化为指定的颜色;因此本文记录批量转化json文件的过程,并且对于不同label可以指定其染某种颜色,非常nice。下面是代码
# -*- coding: utf-8 -*-
import json
import cv2
import numpy as np
import os
import shutil
import argparse
def cvt_one(json_path, img_path, save_path, label_color):
# load img and json
data = json.load(open(json_path,encoding='gbk'))
img = cv2.imread(img_path)
# get background data
img_h = data['imageHeight']
img_w = data['imageWidth']
color_bg = (0, 0, 0)
points_bg = [(0, 0), (0, img_h), (img_w, img_h