前言

之前做深度学习语义分割的时候,处理的数据集的标签label都是图片格式的。这次遇到了json格式的标签,查了一下应该是lebelme制作的,然后找到了解决方案并写下了这篇文字。

安装labelme

需要安装labelme,直接pip安装即可。我的python环境为3.7,安装之后使用labelme报错,直觉告诉我可能是python版本问题,然后创建了python3.6的虚拟环境,果然OK。步骤如下:

# 创建一个python3.6的虚拟环境

conda create --name=labelme python=3.6

# 激活该环境

activate labelme

# 使用pip安装labelme

pip install labelme

单文件json格式标签为png格式

安装好labelme之后,直接在cmd终端输入:

labelme_json_to_dataset 文件名.json

即可得到一个文件夹,有四个文件,img.png,源文件图像

label.png,标签图像

label_names.txt,标签中的各个类别的名称

label_viz.png,源文件与标签融合文件

其中的label.png即是我们要的想要的标签文件。如果本来的源文件图像为jpg格式,我们会发现生成的png格式源文件图像大小会大很多,不必惊慌。JPG转PNG质量不会有变化,但大小通常会增加几倍左右,这是因为JPG是有损压缩,而PNG是无损压缩。img.pnglabel.pnglabel_viz.pnglabel_names.txt

批量json格式标签为png格式

现在生成一个是没问题了,接下来就是批量生成了批量生成,批量生成我们需要在python里调用cmd,os模块调用CMD命令有两种方式:os.popen(),os.system() 都是用当前进程来调用。os.system是无法获取返回值的,当运行结束后接着往下面执行程序。

import os

json_folder = r"D:\RSimage"

# 获取文件夹内的文件名

FileNameList = os.listdir(json_folder)

# 激活labelme环境

os.system("activate labelme")

for i in range(len(FileNameList)):

# 判断当前文件是否为json文件

if(os.path.splitext(FileNameList[i])[1] == ".json"):

json_file = json_folder + "\\" + FileNameList[i]

# 将该json文件转为png

os.system("labelme_json_to_dataset " + json_file)

将文件批量转移成标准格式(这里的标准格式是指所有原图像一个文件夹,所有label一个文件夹)

import os

import shutil

JPG_folder = r"D:\MyFile\6JingJie\05DeepLearning\Demo\data\RSimage\2019"

Paste_JPG_folder = r"D:\MyFile\6JingJie\05DeepLearning\Demo\data\RSimage\image"

Paste_label_folder = r"D:\MyFile\6JingJie\05DeepLearning\Demo\data\RSimage\label"

# 获取文件夹内的文件名

FileNameList = os.listdir(JPG_folder)

NewFileName = 1

for i in range(len(FileNameList)):

# 判断当前文件是否为json文件

if(os.path.splitext(FileNameList[i])[1] == ".JPG"):

# 复制jpg文件

JPG_file = JPG_folder + "\\" + FileNameList[i]

new_JPG_file = Paste_JPG_folder + "\\" + str(NewFileName) + ".JPG"

shutil.copyfile(JPG_file, new_JPG_file)

# 复制label文件

jpg_file_name = FileNameList[i].split(".", 1)[0]

label_file = JPG_folder + "\\" + jpg_file_name + "_json\\label.png"

new_label_file = Paste_label_folder + "\\" + str(NewFileName) + ".png"

shutil.copyfile(label_file, new_label_file)

# 文件序列名+1

NewFileName = NewFileName + 1最终形态

后记

大家有什么问题留言即可,共同讨论,共同进步。

参考:CSDN-专业IT技术社区-登录​blog.csdn.nethttps://github.com/wkentaro/labelme​github.com

python 读png的值变了_深度学习数据预处理_python批量转换labelme标注的json格式标签为png格式...相关推荐

  1. 图像协方差矩阵_深度学习的预处理:从协方差矩阵到图像白化

    图像协方差矩阵 by hadrienj 由hadrienj The goal of this post is to go from the basics of data preprocessing t ...

  2. 【深度学习之路记录02】python代码批量修改Labelme标注的json文件(删除标签、修改标签名)

    代码参考:https://blog.csdn.net/qq_44442727/article/details/112785978 创建自己的数据集时,经常需要一些调整,比如说修改某一批文件中已经标好的 ...

  3. python 读png的值变了_python – 为什么scipy.ndimage.io.imread返回PngImageFile,而不是值数组...

    您可能有一个不完整的Python成像库(PIL)安装,SciPy依赖它来读取图像. PIL依赖于libjpeg加载JPEG图像和libz来加载PNG图像,但是可以在没有任何图像的情况下安装(在这种情况 ...

  4. python bp神经网络分类预测结果图_深度学习入门(四)BP神经网络——数字分类...

    采用的是python中机器学习库sklearn图片数据 sklearn简要介绍: #sklearn是Python中的一个机器学习包 from sklearn.datasets import load_ ...

  5. 深度学习数据自动编码器_如何学习数据科学编码

    深度学习数据自动编码器 意见 (Opinion) When I first wanted to learn programming, I coded along to a 4 hour long Yo ...

  6. 深度学习 图像分类_深度学习时代您应该阅读的10篇文章了解图像分类

    深度学习 图像分类 前言 (Foreword) Computer vision is a subject to convert images and videos into machine-under ...

  7. 贝叶斯深度神经网络_深度学习为何胜过贝叶斯神经网络

    贝叶斯深度神经网络 Recently I came across an interesting Paper named, "Deep Ensembles: A Loss Landscape ...

  8. ann人工神经网络_深度学习-人工神经网络(ANN)

    ann人工神经网络 Building your first neural network in less than 30 lines of code. 用不到30行代码构建您的第一个神经网络. 1.W ...

  9. Deep Learning with Python 读书笔记6.26 I 什么是深度学习

    我感觉这样记录,对于我来说挺好的.因为我看两端对齐的语句容易走神,这样记录阅读的话,就很少出现之前的情况. 我写的初衷,也是自己来看,所以感觉写的不好的,请保留下意见,谢谢. 里面的每一个字我都看过, ...

  10. 脑电波之父:汉斯·贝格尔_深度学习,认识聪明的汉斯

    脑电波之父:汉斯·贝格尔 Around 1900, a German farmer made an extraordinary claim: he had taught a horse basic a ...

最新文章

  1. 一劳永逸-解决人类未来长期-暴露在病毒的方案-致所有中国的科技公司一封信
  2. Property list types and their various representations
  3. python3 写文件时指定文件名_Python3基础 os listdir 列举指定的所有文件及文件夹的名字...
  4. C++:读写二进制文件到double数组,根据二进制数据量进行读取
  5. 60%的安卓APP存在漏洞,平均每个有39个漏洞
  6. pdf如何转换成word文档
  7. 【数据结构与算法】之深入解析“旋转链表”的求解思路与算法示例
  8. 电子商务概论_大学专业介绍之“电子商务专业”
  9. 百面机器学习 #3 经典算法:01-3 核函数支撑向量机SVM
  10. java web 加载类_Java中用ClassLoader载入各种资源(类、文件、web资源)的方法
  11. [转]C++异常处理 12
  12. java服务端开发 php_Java和 PHP哪种语言更适合直播系统后台开发
  13. 计算机基本技能试题,计算机基本技能测试题(第一套).docx
  14. oracle新增字段,并设置默认值
  15. 开源免费cms---十大主流建站的CMS系统介绍
  16. Visual Studio 2017项目进行打包并附加.net框架打包,菜鸟级安装教程
  17. windows代码设置默认音频输出设备
  18. Chrome 开发者工具 Initiator 面板单击后看不到 JavaScript 源代码的解决方法
  19. linux内核安装编译
  20. 关于gist.github.com网站不能访问的解决办法

热门文章

  1. Atitiit java通过Exchange协议同步note 记事本 目录 1.1.1. 使用EWS(Exchange Web Service)协议读取邮件、发送邮件 1 最新问题 1 热门问题 1
  2. Atitit 物联网体系图 感知层 条码:物联网的第一代身份证 65二维码 4 电子标签:物联网的第二代身份证 78 4 传感器:物联网的神经元 92 4 自动识别技术 光学字符识别技术
  3. Atitit 命令行执行sql 跨语言 目录 1.1. 无需输入密码,那就不要-p参数即可 1 1.2. 4.使用mysql命令执行 1 1.3. 5.mysql命令执行sql,并将查询结果保存到
  4. Atitit nosql的概念与attilax的理解 目录 1. 常见的nosql 二、Redis,Memcache,MongoDb的特点 1 HBase 1 2. Nosql的核心nosql 1
  5. Atitit 个人信息数据文档知识分类
  6. paip.c++ qt creator svn 设置以及使用总结.
  7. Rust : 性能测试criterion库
  8. 田汉卿 | 量化基金怎么投,才能源源不断赚钱?
  9. (转)谭志勇、赵微:区块链技术在中国商品交易市场的应用与发展
  10. 机器学习笔记(十七):交叉验证