labelme标签批量转换数据集json_to_dataset

文章目录

  • 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 = 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修改为你自己的路径即可。

标注图片转单通道

关于图片的概念见单通道、三通道、灰度图、黑白图、三通道转灰度图(单通道)。
图片的转换随便搜索就有。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/63504.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache Kylin最简单的解析、了解

官网:Overview | Apache Kylin 一、Apache Kylin是什么? 由中国团队研发具有浓厚的中国韵味,使用神兽麒麟(kylin)为名 的一个OLAP多维数据分析引擎:(据官方给出的数据) 亚秒级响应&#xff…

01云计算HCIA学习笔记

笔者今年7月底考取了华为云计算方向的HCIE认证,回顾从IA到IE的学习和项目实战,想整合和分享自己的学习历程,欢迎志同道合的朋友们一起讨论! 第一章 云计算概述 ICT:ICT是世界电信协会在2001年的全球会议中提出的一个综…

php生成图片

前提 开启dg2库 去掉前面的;注释&#xff0c;有的可能会带.dll后缀影响不大 extensiongd2代码 <?php $file imagecreate(100,50); //先生成图片资源$color imagecolorallocate($file,255,255,255); //白色$c imagecolorallocate($file,0,100,255);imagefill($file,0…

免费GIS工具箱:轻松将glb文件转换成3DTiles文件

在GIS地理信息系统领域&#xff0c;GLB文件作为GLTF文件的二进制版本&#xff0c;主要用于3D模型数据的存储和展示。然而&#xff0c;GLB文件的使用频率相对较低&#xff0c;这是因为GIS系统主要处理的是地理空间数据&#xff0c;如地图、地形、地貌、植被、水系等&#xff0c;…

为何VisualRules更适合技术人员使用

什么是规则引擎 规则引擎是一种软件组件&#xff0c;它允许将业务规则从应用程序的核心代码中分离出来&#xff0c;以一种更加灵活、易于管理和维护的方式来定义、存储和执行这些规则。简单来说&#xff0c;它就像是一个专门处理规则的 “大脑”&#xff0c;可以根据预先设定的…

prometheus 搭建监控

prometheus 下载 prometheus-3.0.0.linux-amd64.tar.gztar -zxvf prometheus-3.0.0.linux-amd64.tar.gzmv prometheus-3.0.0.linux-amd64 prometheus-3vim /etc/systemd/system/prometheus.serviceprometheus.service [Unit] DescriptionPrometheus Wantsnetwork-online.t…

游戏何如防抓包

游戏抓包是指在游戏中&#xff0c;通过抓包工具捕获和分析游戏客户端与服务器之间传输的封包数据的过程。抓包工具可实现拦截、篡改、重发、丢弃游戏的上下行数据包&#xff0c;市面上常见的抓包工具有WPE、Fiddler和Charles Proxy等。 抓包工具有两种实现方式&#xff0c;一类…

RestTemplate实时接收Chunked编码传输的HTTP Response

学习调用AI接口的时候&#xff0c;流式响应都是使用的 Transfer-Encoding: chunked&#xff0c;图方便想用RestTemplate&#xff0c;但是平时用到的都是直接返回响应对象的类型。使用bing搜索到一种方式&#xff0c;使用下面的代码来读取&#xff0c;于是掉这个坑里了&#xff…

request.setAttribute()和session.setAttribute()的区别

request.setAttribute() 作用&#xff1a;request.setAttribute()是在一次请求内共享数据 解释&#xff1a;例如将一个数据保存request域中&#xff0c;然后请求转发至前端页面&#xff0c;则数据转发至前端页面后会被自动销毁。简单点说就是&#xff0c;数据只能用一次就不能…

Java中的Consumer接口应该如何使用(通俗易懂图解)

应用场景&#xff1a; 第一次程序员A写好了个基础的遍历方法&#xff1a; public class Demo1 {public static void main(String[] args) {//假设main方法为程序员B写的,此时需要去调用A写好的一个遍历方法//1.如果此时B突然发现想将字符串以小写的形式打印出来&#xff0c;则…

【常微分方程讲义1.1】方程的种类发展与完备

方程在数学历史中不断发展&#xff0c;逐步趋于完备。从最初的简单代数方程到包含函数、算子甚至泛函的更复杂方程&#xff0c;数学家通过不断的扩展和深化&#xff0c;逐渐建立起更为丰富和多元的方程类型体系。方程的种类之所以不断演变&#xff0c;部分是因为解决实际问题的…

通过移除 -march=native 解决 Ubuntu 20.04 程序运行“段错误 (核心已转储)”问题的详解

通过移除 -marchnative 解决 Ubuntu 20.04 程序运行“段错误 (核心已转储)”问题的详解 在Ubuntu 20.04系统中&#xff0c;开发和编译C/C程序时&#xff0c;常见的编译选项可能会影响程序的稳定性和兼容性。特别是在使用CMake构建系统时&#xff0c;某些编译标志可能导致程序在…

Linux下学【MySQL】表的必备操作( 配实操图和SQL语句)

绪论​ “Patience is key in life &#xff08;耐心是生活的关键&#xff09;”。本章是MySQL中非常重要且基础的知识----对表的操作。再数据库中表是存储数据的容器&#xff0c;我们通过将数据填写在表中&#xff0c;从而再从表中拿取出来使用&#xff0c;本章主要讲到表的增…

深度学习之目标检测篇——残差网络与FPN结合

特征金字塔多尺度融合特征金字塔的网络原理 这里是基于resnet网络与Fpn做的结合&#xff0c;主要把resnet中的特征层利用FPN的思想一起结合&#xff0c;实现resnet_fpn。增强目标检测backone的有效性。代码实现如下&#xff1a; import torch from torch import Tensor from c…

游戏AI实现-寻路算法(BFS)

广度优先搜索算法&#xff08;英语&#xff1a;Breadth-first search&#xff0c;缩写&#xff1a;BFS&#xff09;&#xff0c;又译作宽度优先搜索&#xff0c;或横向优先搜索&#xff0c;是一种图形搜索算法。 寻路地图搭建&#xff1a; 游戏AI实现-寻路地图搭建-CSDN博客 …

CMake的INSTALL FILES和INSTALL DIRECTORY有什么区别

在 CMake 中&#xff0c;install() 命令用于安装构建的目标文件、头文件、库等到指定的目标路径。install(FILES ...) 和 install(DIRECTORY ...) 都是 install() 命令的具体用法&#xff0c;它们的功能和适用场景不同。 以下是两者的详细区别和用法说明&#xff1a; 1. insta…

主流网络安全产品

目前市场上也出现了品类丰富的安全产品&#xff0c;如“防火墙、抗D、负载均衡、WAF、数据库审计、漏扫、网页防篡改、上网行为管理、堡垒机等”这些产品由于功能不同在网络中部署的位置也有区别。下面来简单聊一下每类产品的功能和部署位置。 &#xff08;1&#xff09;防火墙…

利用git上传项目到GitHub

GitHub是基于git实现的代码托管。git是目前最好用的版本控制系统了&#xff0c;非常受欢迎&#xff0c;比之svn更好。 GitHub可以免费使用&#xff0c;并且快速稳定。 利用GitHub&#xff0c;你可以将项目存档&#xff0c;与其他人分享交流&#xff0c;并让其他开发者帮助你一…

《Vue3实战教程》13:Vue3侦听器

如果您有疑问&#xff0c;请观看视频教程《Vue3实战教程》 侦听器​ 基本示例​ 计算属性允许我们声明性地计算衍生值。然而在有些情况下&#xff0c;我们需要在状态变化时执行一些“副作用”&#xff1a;例如更改 DOM&#xff0c;或是根据异步操作的结果去修改另一处的状态。…

uboot 打开log 的 方法

uboot 版本 commit f919c3a889f0ec7d63a48b5d0ed064386b0980bd (HEAD -> v2024.10, tag: v2024.10) Author: Tom Rini <trinikonsulko.com> Date: Mon Oct 7 08:54:35 2024 -0600 Prepare v2024.10 Signed-off-by: Tom Rini <trinikonsulko.com> 开启的选项…