如何上传网站到云主机,服装定制网站模板,网络购物商城网站建设,免费网站下载app软件文章目录 labelme标签批量转换数据集json_to_dataset转换原理单张图片转换多张图片批量转换bat脚本循环法 标注图片提取标注图片转单通道 labelme标签批量转换数据集json_to_dataset
转自labelme批量制作数据集教程。
转换原理
在安装了labelme的虚拟环境中有一个labelme_js… 文章目录 labelme标签批量转换数据集json_to_dataset转换原理单张图片转换多张图片批量转换bat脚本循环法 标注图片提取标注图片转单通道 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的环境下输入下面的代码
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脚本循环法
echo off
for %%i in (*.json) do labelme_json_to_dataset %%i
pause新建一个txt文件把这个复制进去然后改名为test.bat和要转换的文件放在一起。然后在激活相应环境下进入所在文件目录命令行输入test.bat就可以了。
标注图片提取
生成的label图片均在文件中且图片名均是label.png所以需要批量提取label.png其他4个文件没有用代码如下
# 将标签图从json文件中批量取出
import os
import shutilpath rD:\postgraduate\test # 生成的*_json文件夹路径
dirpath rD:\postgraduate\test\output # 分割掩码放置的目标文件夹路径# 确保目标目录存在
os.makedirs(dirpath, exist_okTrue)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(fError moving {eachfile}: {e})使用时只需将path和dirpath修改为你自己的路径即可。
标注图片转单通道
关于图片的概念见单通道、三通道、灰度图、黑白图、三通道转灰度图(单通道)。 图片的转换随便搜索就有。