labelme json转图片

import json
import cv2
import numpy as np
import os

for file in os.listdir('/home/lixuan/workspace/dataset/icecreamtwo/labelme_train/json'):
    img = cv2.imread('/home/lixuan/workspace/dataset/icecreamtwo/labelme_train/jpg/{}'.format(file.replace('json','jpg')))
    with open('/home/lixuan/workspace/dataset/icecreamtwo/labelme_train/json/{}'.format(file)) as f:
        dict = json.load(f)
        shapes = dict['shapes']
        PointsNone = []
        Pointsgroup = {}
        for shape in shapes:
            label = shape['label']
            group_id = shape['group_id']
            points = shape['points']
            points = np.array(points, dtype=np.int)
            if group_id == None:
                Dict = {}
                Dict['label'] = label
                Dict['points'] = points
                PointsNone.append(Dict)
            else:
                if Pointsgroup.get(group_id) == None:
                    Pointsgroup[group_id] = {}
                    Pointsgroup[group_id]['label'] = label
                    Pointsgroup[group_id]['points'] = []
                    Pointsgroup[group_id]['points'].append(points)
                else:
                    Pointsgroup[group_id]['points'].append(points)
        if not os.path.exists('/home/lixuan/workspace/dataset/icecreamtwo/labelme_train/masks/{}'.format(file.split('.')[0])):
            os.mkdir('/home/lixuan/workspace/dataset/icecreamtwo/labelme_train/masks/{}'.format(file.split('.')[0]))
        for number in Pointsgroup:
            balck = np.zeros_like(img)
            label = Pointsgroup[number]['label']
            Points = Pointsgroup[number]['points']
            for points in Points:
                black = cv2.fillConvexPoly(balck,points, (255, 255, 255))
            cv2.imwrite('/home/lixuan/workspace/dataset/icecreamtwo/labelme_train/masks/{}/{}-{}.jpg'.format(file.split('.')[0],number,label),balck)
        count = 0
        for index,poly in enumerate(PointsNone):
            label = poly['label']
            points = poly['points']
            balck = np.zeros_like(img)
            black = cv2.fillConvexPoly(balck, points, (255, 255, 255))
            cv2.imwrite('/home/lixuan/workspace/dataset/icecreamtwo/labelme_train/masks/{}/None-{}-{}.jpg'.format(file.split('.')[0],label,count),balck)
            count += 1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值