1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import os
- import json
- import argparse
- import numpy as np
- import glob
- import cv2
- from sklearn.model_selection import train_test_split
- from labelme import utils
- from tqdm import tqdm
- import shutil
- if __name__ == '__main__':
- parser = argparse.ArgumentParser()
- parser.add_argument('--anno_dirs', type=str, nargs="+", default=[])
- parser.add_argument('--data_dir', type=str, default='')
- args = parser.parse_args()
- labelme_folds = args.anno_dirs
- json_list_path = []
- for labelme_path in labelme_folds:
- list_path = glob.glob(labelme_path + "/*.json")
- json_list_path.extend(list_path)
- print('reading...')
- print("images: %d" % len(json_list_path))
- for file in tqdm(json_list_path):
- json_path = file
- temp_json = {}
- img_name = ''
- with open(json_path, 'r', encoding='utf-8') as jp:
- info = json.load(jp)
- info['imagePath'] = os.path.basename(info['imagePath'])
- img_name = info['imagePath']
- info['imageData'] = None
- temp_json = info
- jp.close()
- img_path = file.replace('json', str(img_name).split('.')[1])
- try:
- shutil.copy(img_path, args.data_dir)
- json.dump(temp_json,
- open(os.path.join(args.data_dir, os.path.basename(json_path)), 'w', encoding='utf-8'),
- ensure_ascii=False, indent=4)
- except Exception as e:
- print(e)
- print('Wrong Image:', img_name)
- continue
|