def parse_json_to_xml(json_file, classes): #read json data with open(json_file, 'r') as f: data = json.loads(f.read()) folder_name = os.path.dirname(json_file) file_name = data['filename'] image_size = data['image_size'] boxes = data['box'] #init parser parser = PascalVocWriter(folder_name, file_name, image_size) for b in boxes: parser.add_bnd_box(b[0], b[1], b[2], b[3], classes, 0) parser.save()
def test_upper(self): dir_name = os.path.abspath(os.path.dirname(__file__)) libs_path = os.path.join(dir_name, '..', 'libs') sys.path.insert(0, libs_path) from pascal_voc_io import PascalVocWriter from pascal_voc_io import PascalVocReader # Test Write/Read writer = PascalVocWriter('tests', 'test', (512, 512, 1), local_img_path='tests/test.512.512.bmp') difficult = 1 writer.add_bnd_box(60, 40, 430, 504, 'person', difficult) writer.add_bnd_box(113, 40, 450, 403, 'face', difficult) writer.save('tests/test.xml') reader = PascalVocReader('tests/test.xml') shapes = reader.get_shapes() person_bnd_box = shapes[0] face = shapes[1] self.assertEqual(person_bnd_box[0], 'person') self.assertEqual(person_bnd_box[1], [(60, 40), (430, 40), (430, 504), (60, 504)]) self.assertEqual(face[0], 'face') self.assertEqual(face[1], [(113, 40), (450, 40), (450, 403), (113, 403)])