批量转换Labelme标注的JSON数据为图片

作者:问题终结者2024.04.02 17:56浏览量:18

简介:本文将向您介绍如何批量将Labelme工具标注的JSON数据转换为图片,并提供了修改标签颜色的方法。通过本文,您将能够轻松实现JSON数据的可视化,并为深度学习等任务提供所需的标签图片。

引言

深度学习和计算机视觉领域,标注数据是非常重要的一部分。Labelme是一款常用的图像标注工具,它可以将标注结果保存为JSON格式的文件。然而,有时候我们需要将这些标注数据转换为图片格式,以便于后续的处理和分析。本文将向您介绍如何实现批量转换Labelme标注的JSON数据为图片,并提供修改标签颜色的方法。

单张图片的转换

首先,让我们来看看如何转换单张图片的标注数据。假设您已经安装了Labelme,并且有一张标注好的JSON文件,路径为E:\test\image\001.json

在安装了Labelme的环境下,打开命令提示符(cmd),输入以下命令:

  1. labelme_json_to_dataset E:\test\image\001.json

执行上述命令后,会在JSON文件所在的文件夹内生成一个与JSON文件同名的文件夹(只是文件扩展名从.json改成了_),里面包含了四个文件:img.png, label.png, label_name.txt, label_viz.png。其中,label.png文件就是转换后的标签图片。

批量转换

要实现批量转换,我们可以编写一个Python脚本来循环调用labelme_json_to_dataset方法,对指定文件夹中的所有JSON文件进行转换。以下是一个简单的示例脚本:

  1. import os
  2. import glob
  3. # 指定包含JSON文件的文件夹路径
  4. json_folder = 'E:\test\image'
  5. # 遍历文件夹中的所有JSON文件
  6. for json_file in glob.glob(os.path.join(json_folder, '*.json')):
  7. # 提取文件名(不带扩展名)
  8. filename = os.path.splitext(os.path.basename(json_file))[0]
  9. # 调用labelme_json_to_dataset方法进行转换
  10. os.system(f'labelme_json_to_dataset {json_file} --out_dir {json_folder}_{filename}')

将上述代码保存为一个Python文件(例如convert_json_to_images.py),然后在命令提示符中运行该文件:

  1. python convert_json_to_images.py

执行完毕后,您将在每个JSON文件所在的文件夹内找到转换后的标签图片。

修改标签颜色

有时候,您可能希望修改标签在图像中的颜色。这可以通过编辑labelme_json_to_dataset方法的源代码来实现。在Labelme的源代码中,找到labelme_json_to_dataset函数,您会看到一个名为colors的列表,其中定义了各个类别的颜色。您可以根据需要修改这些颜色值。

例如,将第一个类别的颜色从默认的蓝色([0, 0, 255])修改为绿色([0, 255, 0]):

  1. colors = [[0, 255, 0], [0, 0, 255], [255, 0, 0], ...]

保存修改后的源代码,并重新运行转换脚本,您将会看到新的标签颜色。

总结

通过本文的介绍,您已经了解了如何批量转换Labelme标注的JSON数据为图片,并掌握了修改标签颜色的方法。这些技术在实际应用中非常有用,特别是在深度学习和计算机视觉领域。希望本文能够帮助您更好地处理标注数据,并为后续的任务提供便利。