Explorar el Código

Fix image orientation in labelme_draw_json

Kentaro Wada hace 5 años
padre
commit
3ae57b2655
Se han modificado 1 ficheros con 5 adiciones y 17 borrados
  1. 5 17
      labelme/cli/draw_json.py

+ 5 - 17
labelme/cli/draw_json.py

@@ -1,14 +1,12 @@
 #!/usr/bin/env python
 
 import argparse
-import base64
-import json
-import os
 import sys
 
 import imgviz
 import matplotlib.pyplot as plt
 
+from labelme.label_file import LabelFile
 from labelme import utils
 
 
@@ -20,21 +18,11 @@ def main():
     parser.add_argument('json_file')
     args = parser.parse_args()
 
-    json_file = args.json_file
-
-    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_file = LabelFile(args.json_file)
+    img = utils.img_b64_to_arr(label_file.imageData)
 
     label_name_to_value = {'_background_': 0}
-    for shape in sorted(data['shapes'], key=lambda x: x['label']):
+    for shape in sorted(label_file.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]
@@ -42,7 +30,7 @@ def main():
             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
+        img.shape, label_file.shapes, label_name_to_value
     )
 
     label_names = [None] * (max(label_name_to_value.values()) + 1)