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() |