python批量修改labelme标注的json文件中的多种类别的标签名
时间: 2024-04-13 21:29:49 浏览: 304
用python实现文件名批量修改
如果你想要批量修改labelme标注的JSON文件中的多种类别的标签名,你可以使用一个映射字典来指定每个旧标签名对应的新标签名。下面是一个示例代码:
```python
import os
import json
def batch_modify_labels(json_folder, label_mapping):
for filename in os.listdir(json_folder):
if filename.endswith('.json'):
json_path = os.path.join(json_folder, filename)
with open(json_path, 'r') as f:
data = json.load(f)
# 修改标签名
for shape in data['shapes']:
old_label = shape['label']
if old_label in label_mapping:
shape['label'] = label_mapping[old_label]
# 保存修改后的JSON文件
with open(json_path, 'w') as f:
json.dump(data, f, indent=4)
# 示例用法
json_folder = '/path/to/json/folder' # JSON文件所在的文件夹路径
label_mapping = {
'old_label_1': 'new_label_1', # 要替换的旧标签名和对应的新标签名
'old_label_2': 'new_label_2',
'old_label_3': 'new_label_3',
}
batch_modify_labels(json_folder, label_mapping)
```
在示例代码中,你需要将`json_folder`替换为包含JSON文件的实际文件夹路径,并且定义一个`label_mapping`字典,其中每个键是要替换的旧标签名,对应的值是新标签名。代码会遍历指定文件夹中的所有JSON文件,对每个JSON文件中的标签名进行替换,然后保存修改后的JSON文件。
通过使用这样的映射字典,你可以同时修改多种类别的标签名。只需在`label_mapping`字典中添加更多的键值对即可。
阅读全文