labelme标签批量转换数据集json_to_dataset

文章目录

labelme标签批量转换数据集json_to_dataset

转自labelme批量制作数据集教程

转换原理

在安装了labelme的虚拟环境中有一个labelme_json_to_dataset.exe文件可以将json文件转成++png文件【分割掩码(mask)】++ ,但这个过程一次只能转换一个文件,因此这里提出批量转换的方法。(labelme_json_to_dataset.exe文件的所在目录是conda\envs\labelme\Scripts\labelme_json_to_dataset.exe)。

单张图片转换

json文件需要转换成++png文件【分割掩码(mask)】++ ,基本转换方法是++在安装了labelme的环境++下,输入下面的代码:

python 复制代码
labelme_json_to_dataset E:\test\image\001.json

在001.json所在文件夹内,会生成一个001_json的文件夹,里面有5个文件,其中的label.png为所要的分割掩膜,label_viz.png是通道融合图,新版本的labelme没有.yaml文件(因此新版本的labelme中仅会生成4个文件)。

分割掩膜示意图:

多张图片批量转换

但是当数据文件很多时,需要批量处理的方法。++这种方法需要原始图片与对应的json文件在同一个文件夹下++。

bat脚本循环法

python 复制代码
@echo off
for %%i in (*.json)  do labelme_json_to_dataset %%i
pause

新建一个txt文件,把这个复制进去,然后改名为test.bat,和要转换的文件放在一起。然后++在激活相应环境下,进入所在文件目录,命令行输入test.bat就可以了++。

标注图片提取

生成的label图片均在文件中,且图片名均是label.png,所以需要批量提取label.png,其他4个文件没有用,代码如下

python 复制代码
# 将标签图从json文件中批量取出
import os
import shutil

path = r'D:\postgraduate\test'  # 生成的*_json文件夹路径
dirpath = r'D:\postgraduate\test\output'  # 分割掩码放置的目标文件夹路径

# 确保目标目录存在
os.makedirs(dirpath, exist_ok=True)

for eachfile in os.listdir(path):
    if os.path.isdir(os.path.join(path, eachfile)):
        source_file = os.path.join(path, eachfile, 'label.png')
        destination_file = os.path.join(dirpath, eachfile.split('_')[0] + '.png')

        if os.path.exists(source_file):
            try:
                shutil.copy(source_file, destination_file)
                print(eachfile + ' successfully moved')
            except Exception as e:
                print(f'Error moving {eachfile}: {e}')

使用时,只需将path和dirpath修改为你自己的路径即可。

标注图片转单通道

关于图片的概念见单通道、三通道、灰度图、黑白图、三通道转灰度图(单通道)

图片的转换随便搜索就有。

相关推荐
一颗小树x5 个月前
YOLO格式转Labelme | 标签信息 | 辅助标注 | txt转json
labelme·yolo格式·标签信息·辅助标注·txt转json
Diros1g1 年前
老版本labelme如何不保存imagedata
labelme·标注·语义3分割
FriendshipT1 年前
Python将原始数据集和标注文件进行数据增强(随机仿射变换),并生成随机仿射变换的数据集和标注文件
开发语言·人工智能·python·目标检测·json·labelme
FriendshipT1 年前
Python将已标注的两张图片进行上下拼接并修改、合并其对应的Labelme标注文件
开发语言·人工智能·python·目标检测·json·labelme
大胡子大叔1 年前
深度学习标注工具(包括自动标注)总结——持续更新
自动标注·标注工具·labelme·视频标注·点云标注