1.批量化将labelme生成的json文件转化为png图片,并分置于两个文件夹

lableme 自带的json_to_dataset.py 文件可以生成单个的.png文件,但是当标注的图片较多时,需要具备批量化转化功能:


from PIL import Image, ImageDraw
import json
import os

# 定义标签到颜色的映射,例如:'leakage' 对应 (255, 0, 0) 表示红色
label_to_color = {
    'leakage': (128, 0, 0),
    # 在这里添加更多标签和颜色
}

# 定义输入JSON文件夹和输出PNG文件夹
input_folder = 'D:/UserData/Desktop/1/json'  # 将此路径替换为包含JSON文件的文件夹路径
output_folder = 'D:/UserData/Desktop/1/png'  # 将此路径替换为要保存PNG文件的文件夹路径

# 确保输出文件夹存在,如果不存在则创建
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# 循环处理输入文件夹中的每个JSON文件
for json_filename in os.listdir(input_folder):
    if json_filename.endswith('.json'):
        # 构建输入JSON文件的完整路径
        json_file_path = os.path.join(input_folder, json_filename)

        # 读取JSON文件内容
        with open(json_file_path, 'r') as json_file:
            data = json.load(json_file)

            # 获取图像尺寸和标注
            img_width = data['imageWidth']
            img_height = data['imageHeight']
            shapes = data['shapes']

            # 创建一个空白的PNG图像
            img = Image.new('RGB', (img_width, img_height), (0, 0, 0))
            draw = ImageDraw.Draw(img)

            # 在图像上绘制每个标注
            for shape in shapes:
                label = shape['label']
                points = shape['points']
                polygon = [(x, y) for x, y in points]

                # 使用颜色映射来确定填充颜色
                if label in label_to_color:
                    fill_color = label_to_color[label]
                    draw.polygon(polygon, fill=fill_color)
                else:
                    print(f"警告:未知标签 '{label}',将使用默认颜色绘制。")

            # 构建输出PNG文件的完整路径
            output_filename = os.path.splitext(json_filename)[0] + '.png'
            output_path = os.path.join(output_folder, output_filename)

            # 保存PNG图像
            img.save(output_path, 'PNG')
            print(f'转换: {json_file_path} -> {output_path}')

print('转换完成!')

在这里只需要修改

input_folder = 'D:/UserData/Desktop/1/json' # 将此路径替换为包含JSON文件的文件夹路径
output_folder = 'D:/UserData/Desktop/1/png' # 将此路径替换为要保存PNG文件的文件夹路径

对应的文件夹路径即可

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值