不改变自己json文件的格式下修改label值

import json
import os


def changeJsonLabelName(json_dir, new_json_dir):
    json_files = os.listdir(json_dir)
    json_dict = {}
    # 需要修改的新名称
    new_name1 = 'mubiao'

    for json_file in json_files:
        jsonfile = json_dir + '/' + json_file
        json_out = new_json_dir + '/' + json_file
        # 读单个json文件
        with open(jsonfile, 'r', encoding='utf-8') as jf:
            info = json.load(jf)
            # 找到位置进行修改
            for i, label in enumerate(info['shapes']):
                 label['label'] = new_name1
            # 使用新字典替换修改后的字典
            json_dict = info
            # set_trace()
        # 将替换后的内容写入原文件
        with open(json_out, 'w') as new_jf:
            json.dump(json_dict, new_jf, indent=2)
    print('change name over!')


label_path = './tar'  # 原始标签文件夹
dst_path = './1'  # 存储修改后标签的文件夹
changeJsonLabelName(label_path, dst_path)

如果你的标注文件JSON格式而不是掩码图,你可以使用labelme库加载JSON文件并进行增强扩充。下面是修改后的代码示例: ```python import imgaug.augmenters as iaa import os import json import cv2 from labelme import utils def augment_and_save(image_path, label_path, output_dir, num_augmented=5): # 读取图像和标签 image = cv2.imread(image_path) with open(label_path, "r") as f: label_data = json.load(f) label = utils.shapes_to_label(image.shape, label_data["shapes"]) # 定义增强器 seq = iaa.Sequential([ iaa.Fliplr(0.5), # 随机水平翻转 iaa.Affine(rotate=(-10, 10)), # 随机旋转 iaa.GaussianBlur(sigma=(0, 1.0)), # 随机高斯模糊 iaa.AdditiveGaussianNoise(scale=(0, 0.05*255)) # 随机添加高斯噪声 ]) # 扩充并保存增强后的图像和标签 for i in range(num_augmented): augmented_image, augmented_label = seq(image=image, segmentation_maps=label) augmented_image_path = os.path.join(output_dir, f"augmented_image_{i}.jpg") augmented_label_path = os.path.join(output_dir, f"augmented_label_{i}.json") # 转换增强后的标签为labelme格式 augmented_shapes = utils.label_to_shapes(augmented_label) augmented_label_data = {"shapes": augmented_shapes} with open(augmented_label_path, "w") as f: json.dump(augmented_label_data, f) cv2.imwrite(augmented_image_path, augmented_image) # 示例用法 image_path = "path/to/image.jpg" # 原始图像路径 label_path = "path/to/label.json" # 原始标签路径 output_dir = "path/to/output" # 输出目录 num_augmented = 5 # 增强的图像数量 augment_and_save(image_path, label_path, output_dir, num_augmented) ``` 请确保你已经安装了Imgaug库和labelme库。这段代码会加载原始图像和标签,然后使用Imgaug库进行随机的增强操作,最后将增强后的图像和标签保存到指定的输出目录中。请根据实际情况修改输入输出路径和增强的参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值