修改
C:\ProgramData\Anaconda3\Lib\site-packages\labelme\cli\json_to_dataset.py
为
import argparse
import base64
import json
import os
import os.path as osp
import PIL.Image
import yaml
from labelme.logger import logger
from labelme import utils
def main():
logger.warning('This script is aimed to demonstrate how to convert the'
'JSON file to a single image dataset, and not to handle'
'multiple JSON files to generate a real-use dataset.')
parser = argparse.ArgumentParser()
parser.add_argument('json_file')
parser.add_argument('-o', '--out', default=None)
args = parser.parse_args()
json_file = args.json_file
if args.out is None:
out_dir = osp.basename(json_file).replace('.', '_')
out_dir = osp.join(osp.dirname(json_file), out_dir)
else:
out_dir = args.out
data = json.load(open(json_file))
if data['imageData']:
imageData = data['imageData']
else:
imagePath = os.path.join(os.path.dirname(json_file), data['imagePath'])
with open(imagePath, 'rb') as f:
imageData = f.read()
imageData = base64.b64encode(imageData).decode('utf-8')
img = utils.img_b64_to_arr(imageData)
label_name_to_value = {'_background_': 0}
for shape in sorted(data['shapes'], key=lambda x: x['label']):
label_name = shape['label']
if label_name in label_name_to_value:
label_value = label_name_to_value[label_name]
else:
label_value = len(label_name_to_value)
label_name_to_value[label_name] = label_value
lbl = utils.shapes_to_label(img.shape, data['shapes'], label_name_to_value)
label_names = [None] * (max(label_name_to_value.values()) + 1)
for name, value in label_name_to_value.items():
label_names[value] = name
lbl_viz = utils.draw_label(lbl, img, label_names)
saved_name = os.path.splitext(os.path.basename(json_file))[0]+'.png'
utils.lblsave(osp.join('D:\\coslight\\0304_beforetolabel\\label\\', saved_name), lbl)**
#saved_name 取得json文件名称,使得转换后的label图片的名称为json的名称
#'D:\\coslight\\0304_beforetolabel\\label\\'为保存label图片的文件夹
#将原文件此处以下部分代码删去,这样就不用生成包含标签种类名称,原始图片,转换后的图片文件夹,只需要json转换后的label图片
if __name__ == '__main__':
main()
代码加粗部分为修改的地方
在windows环境下打开cmd进行批量标注转换成图片:
cd D:\json
for /r %i in (*) do labelme_json_to_dataset %i
D:\json为json保存文件夹
label的颜色同时也能改变,具体参考
https://github.com/wkentaro/labelme/issues/288
版权声明:本文为weixin_42388228原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。