File size: 1,492 Bytes
ef6a8c6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
'''
@File    :  mv_featurelines.py
@Author  :  Jiapeng Zhou
@Desc    :  move part of featurelines to another annotation labelme json files (bottom_curve are good, but left_cuff arenot)
'''

import os, os.path as osp, sys, pdb, json, shutil, argparse

def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument('--src-dir', type=str)
    parser.add_argument('--dst-dir', type=str)
    args = parser.parse_args()
    return args

def main():
    args = parse_args()
    src_dir = args.src_dir
    dst_dir = args.dst_dir
    src_files = sorted([osp.join(src_dir, f) for f in os.listdir(src_dir) if f.endswith('.json')])
    dst_files = sorted([osp.join(dst_dir, f) for f in os.listdir(dst_dir) if f.endswith('.json')])
    assert len(src_files) == len(dst_files), 'src_files and dst_files should have same length'
    for idx, (src_file, dst_file) in enumerate(zip(src_files, dst_files)):
        with open(src_file) as fp:
            src_json = json.load(fp)
        with open(dst_file) as fp:
            dst_json = json.load(fp)
        src_shapes = src_json['shapes']
        dst_shapes = dst_json['shapes']

        for src_shape in src_shapes:
            if src_shape['label'] == 'bottom_curve':
                dst_shapes.append(src_shape)
        dst_json['shapes'] = dst_shapes

        with open(dst_file, 'w') as fp:
            json.dump(dst_json, fp)
        print('finish {}/{}'.format(idx+1, len(src_files)))
        

if __name__ == '__main__':
    main()