labelme在win下可视化json文件

首先要安装配好labelme(上篇)
根据该readme文档尝试
https://github.com/wkentaro/labelme/tree/master/examples/tutorial
改动labelme_draw_json
labelme在win下可视化json文件_第1张图片
把scripts里的labelme_draw_json移动到该目录下,并加.py 后缀
labelme在win下可视化json文件_第2张图片
把想可视化的json放在同一目录
shift+右键打开命令行

python labelme_draw_json.py bird.json

labelme在win下可视化json文件_第3张图片
之前标定的bird和默认背景分别显示
labelme.json显示

import json
import numpy as np
import skimage.io
import cv2
import matplotlib.pyplot as plt
import PIL.Image
import PIL.ImageDraw


data=json.load(open('bird.json'))

img_path=data['imagePath'].split('/')[-1]
img=skimage.io.imread(img_path)

def polygons_to_mask(img_shape, polygons):
    '''
    边界点生成mask
    :param img_shape: [h,w]
    :param polygons: labelme JSON中的边界点格式 [[x1,y1],[x2,y2],[x3,y3],...[xn,yn]]
    :return: 
    '''
    mask = np.zeros(img_shape, dtype=np.uint8)
    mask = PIL.Image.fromarray(mask)
    xy = list(map(tuple, polygons))
    PIL.ImageDraw.Draw(mask).polygon(xy=xy, outline=1, fill=1)
    mask = np.array(mask, dtype=bool)
    return mask

def polygons_to_mask2(img_shape, polygons):
    '''
    边界点生成mask
    :param img_shape: [h,w]
    :param polygons: labelme JSON中的边界点格式 [[x1,y1],[x2,y2],[x3,y3],...[xn,yn]]
    :return: 
    '''
    mask = np.zeros(img_shape, dtype=np.uint8)
    polygons = np.asarray([polygons], np.int32) # 这里必须是int32,其他类型使用fillPoly会报错
    # cv2.fillPoly(mask, polygons, 1) # 非int32 会报错
    cv2.fillConvexPoly(mask, polygons, 1)  # 非int32 会报错
    return mask


points=[]
labels=[]
for shapes in data['shapes']:
    points.append(shapes['points'])
    labels.append(shapes['label'])

mask0=polygons_to_mask(img.shape[:2],points[0])
#mask1=polygons_to_mask(img.shape[:2],points[1])

plt.subplot(121)
plt.imshow(img)
plt.axis('off')
plt.title('original')

plt.subplot(122)
plt.imshow(mask0.astype(np.uint8),'gray')
plt.axis('off')
plt.title('SegmentationObject:\n'+labels[0])
plt.show()

labelme在win下可视化json文件_第4张图片
reference
json文件格式:
https://blog.csdn.net/wc781708249/article/details/79603522#%E9%A6%96%E5%85%88%E6%98%AF%E8%A6%81labelme%E5%81%9A%E5%A5%BD%E5%9B%BE%E7%89%87%E6%A0%87%E6%B3%A8

你可能感兴趣的:(深度学习)