draw_json.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/usr/bin/env python
  2. import argparse
  3. import json
  4. import matplotlib.pyplot as plt
  5. from labelme import utils
  6. def main():
  7. parser = argparse.ArgumentParser()
  8. parser.add_argument('json_file')
  9. args = parser.parse_args()
  10. json_file = args.json_file
  11. data = json.load(open(json_file))
  12. img = utils.img_b64_to_arr(data['imageData'])
  13. label_name_to_value = {'_background_': 0}
  14. for shape in data['shapes']:
  15. label_name = shape['label']
  16. if label_name in label_name_to_value:
  17. label_value = label_name_to_value[label_name]
  18. else:
  19. label_value = len(label_name_to_value)
  20. label_name_to_value[label_name] = label_value
  21. lbl = utils.shapes_to_label(
  22. img.shape, data['shapes'], label_name_to_value)
  23. captions = ['{}: {}'.format(lv, ln)
  24. for ln, lv in label_name_to_value.items()]
  25. lbl_viz = utils.draw_label(lbl, img, captions)
  26. plt.subplot(121)
  27. plt.imshow(img)
  28. plt.subplot(122)
  29. plt.imshow(lbl_viz)
  30. plt.show()
  31. if __name__ == '__main__':
  32. main()