예제 #1
0
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()
예제 #2
0
    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)])