draw_json.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/usr/bin/env python
  2. import argparse
  3. import sys
  4. import imgviz
  5. import matplotlib.pyplot as plt
  6. from labelme.label_file import LabelFile
  7. from labelme import utils
  8. PY2 = sys.version_info[0] == 2
  9. def main():
  10. parser = argparse.ArgumentParser()
  11. parser.add_argument('json_file')
  12. args = parser.parse_args()
  13. label_file = LabelFile(args.json_file)
  14. img = utils.img_data_to_arr(label_file.imageData)
  15. label_name_to_value = {'_background_': 0}
  16. for shape in sorted(label_file.shapes, key=lambda x: x['label']):
  17. label_name = shape['label']
  18. if label_name in label_name_to_value:
  19. label_value = label_name_to_value[label_name]
  20. else:
  21. label_value = len(label_name_to_value)
  22. label_name_to_value[label_name] = label_value
  23. lbl, _ = utils.shapes_to_label(
  24. img.shape, label_file.shapes, label_name_to_value
  25. )
  26. label_names = [None] * (max(label_name_to_value.values()) + 1)
  27. for name, value in label_name_to_value.items():
  28. label_names[value] = name
  29. lbl_viz = imgviz.label2rgb(
  30. label=lbl,
  31. img=imgviz.asgray(img),
  32. label_names=label_names,
  33. font_size=30,
  34. loc='rb',
  35. )
  36. plt.subplot(121)
  37. plt.imshow(img)
  38. plt.subplot(122)
  39. plt.imshow(lbl_viz)
  40. plt.show()
  41. if __name__ == '__main__':
  42. main()