1、打开anaconda,进入labelme,进入存放json文件的文件夹

2、在anaconda输入:

labelme_json_to_dataset <文件名>.json

3、自动完成json文件的转换,可以得到4个文件:
img.png
label.png
label_viz.png
label_names.txt

这时候得到的label是彩色的,不能作为标签图,需要为其分配不同的标签类别,如0、1、2…

4、转二值标签图直接上代码:

#!/usr/bin/python
# -*- coding: UTF-8 -*-import argparse
import json
import os
import os.path as osp
import PIL.Image
import yaml
from labelme import utils
import cv2
from skimage import img_as_ubytedef main():parser = argparse.ArgumentParser()parser.add_argument('json_file')parser.add_argument('-o', '--out', default=None)args = parser.parse_args()json_file = args.json_filelist_path = os.listdir(json_file)print('json_file:', json_file)for i in range(0, len(list_path)):path = os.path.join(json_file, list_path[i])if os.path.isfile(path):data = json.load(open(path))img = utils.img_b64_to_arr(data['imageData'])lbl, lbl_names = utils.labelme_shapes_to_label(img.shape, data['shapes'])captions = ['%d: %s' % (l, name) for l, name in enumerate(lbl_names)]lbl_viz = utils.draw_label(lbl, img, captions)out_dir = osp.basename(path).replace('.', '_')save_file_name = out_dir# ------------------------保存从json中解析出来的图像、label、图像+label-------------------if not osp.exists(json_file + '\\' + 'labelme_json'):os.mkdir(json_file + '\\' + 'labelme_json')labelme_json = json_file + '\\' + 'labelme_json'out_dir1 = labelme_json + '\\' + save_file_nameif not osp.exists(out_dir1):os.mkdir(out_dir1)PIL.Image.fromarray(img).save(out_dir1 + '\\' + save_file_name + '_img.png')PIL.Image.fromarray(lbl).save(out_dir1 + '\\' + save_file_name + '_label.png')PIL.Image.fromarray(lbl_viz).save(out_dir1 + '\\' + save_file_name + '_label_viz.png')# ---------------------------------保存label的mask(0 1 2 3)----------------------------if not osp.exists(json_file + '\\' + 'mask_png'):os.mkdir(json_file + '\\' + 'mask_png')mask_save2png_path = json_file + '\\' + 'mask_png'mask_dst = img_as_ubyte(lbl)  # mask_picprint('pic2_deep:', mask_dst.dtype)cv2.imwrite(mask_save2png_path + '\\' + save_file_name + '_label.png', mask_dst*50)with open(osp.join(out_dir1, 'label_names.txt'), 'w') as f:for lbl_name in lbl_names:f.write(lbl_name + '\n')info = dict(label_names=lbl_names)with open(osp.join(out_dir1, 'info.yaml'), 'w') as f:yaml.safe_dump(info, f, default_flow_style=False)print('Saved to: %s' % out_dir1)if __name__ == '__main__':main()

(参考https://blog.csdn.net/u014513323/article/details/81166997)

在配置项中输入json的路径(注意:这里的路径是文件夹,不是某个具体的json文件)

这段代码可以自动从json解析出第3步的那几个文件以及一个info.yaml文件,并会放在一个文件夹中

除此之外,可以生成二值标签图,并放到另外一个文件夹中

5、重点!如何变全黑为灰度!

下面这一步就可以实现:给二值图*50

cv2.imwrite(mask_save2png_path + '\\' + save_file_name + '_label.png', mask_dst*50)

(参考https://blog.csdn.net/jianchi1117/article/details/86508405)

解决~
完美~

labelme画出的标注json转换成二值标签图,并解决label全黑问题相关推荐

  1. json转换成excel在线js小工具分享【不限制大小】

    起因 我们在工作过程中,偶尔会有需求是把json转换成excel的需求.一般这个时候,我们会跑到度娘那,在输入框中输入:"json excel".然后,你会发现这个一个网站&quo ...

  2. json转php数组 在线,PHP如何将JSON转换成数组/对象

    在PHP中可以使用json_decode()函数将JSON编码的字符串转换为适当的PHP数据类型.默认情况下,json_decode()函数将返回一个对象:但是,可以指定第二个参数为一个布尔值true ...

  3. excel函数公式html文档,Excel中把计算式转换为运算结果的方法 EXCEL中计算出的公式如何转换成纯文本内容?...

    如何在EXCEL中将计算公式直接变结果如我在A1输入计算式:(1+2*3+4/5-6)*1.2+(1+5) 如何在B1得出该计算式的选中B1然后按快捷键ctrl+F3,进入名称管理器,新建,输入任意名 ...

  4. json转换成dart类 JSON to Dart

    json_to_dart的使用 如果我们得到一个特别复杂的JSON,有时候会无从下手开始写Model,这时候就可以使用一些辅助工具.我认为json_to_dart是比较好用的一个.它可以直接把json ...

  5. 在线JSON转换成Excel文件工具

    在线JSON转换成Excel文件工具 在线JSON转换成Excel文件工具 本工具可以将JSON数据在浏览器本地转换成Excel支持一键下载. JSON:(JavaScript Object Nota ...

  6. php将json转化成数组,php如何把json转换成数组

    php把json转换成数组的方法:首先创建一个php示例文件:然后创建一组json格式数据:接着通过"json_decode"函数把json转换成数组:最后通过"var_ ...

  7. php将json转换成对象,php将json转换成对象或数组

    php将json转换成对象或数组 发布时间:2020-06-01 16:31:29 来源:亿速云 阅读:126 作者:鸽子 在PHP中可以使用json_decode()函数将JSON编码的字符串转换为 ...

  8. PHP把JSON转换成数组

    在PHP中可以使用json_decode()函数将JSON编码的字符串转换为适当的PHP数据类型.默认情况下,json_decode()函数将返回一个对象:但是,可以指定第二个参数为一个布尔值true ...

  9. c#(winform)将响应的json转换成list集合

    c#(winform)将响应的json转换成list集合 兄弟们在找这个转换方法时,可以搜索json反序列化. 我的解决方法是这样 先将拿到的json文件到 http://www.bejson.com ...

最新文章

  1. 浅析正则表达式模式匹配的 String 方法
  2. eeglab中文教程系列(15)-绘制独立成分ERP贡献
  3. tensors used as indices must be long or byte tensors
  4. ARM 之三 Keil uVision4、Keil uVision5、Keil C51同一系统下的共存
  5. 搭建Mock Server
  6. android studio更新之后打包遇到V1(Jar Signature)、 V2(Full APK Signature)问题
  7. Gradle的好处:运行单个测试
  8. qt在窗口的子部件中绘制矩形
  9. Problem(三):工作中的记录。。。。
  10. ORCAD 16.6使用说明及技巧
  11. led闪烁和流水灯代码
  12. 通过QQ 2012 客户端协议获取clientkey数据包流程
  13. 无法启动此程序因为计算机中丢失adapt,【完美解决】Wi7中NVIDIA GT540M安装程序无法找到和你现有硬件兼容的任何驱动程序,安装程序将会退出.doc...
  14. hdu-2206 IP的计算
  15. html显示tooltips,提示工具 | Tooltips
  16. 湘潭大学 Hurry Up 三分,求凹函数的最小值问题
  17. 不3了也不写了....
  18. 头号玩家VR跑步机KAT Walk Mini上市,支持各种主流VR头显
  19. JDBC编程(JDBC的使用)
  20. 【OKT507】迪文屏事件

热门文章

  1. MIT 操作系统 jos make grade出现no jos.out
  2. Mac常见问题:如何在Mac中查看多张图片
  3. 高德地图 定位 设置文本
  4. 好用的在线二维码生成器网站PHP源码
  5. 【Tensorflow+Keras】tf.keras.layers.LSTM的解析与使用
  6. 【Python4CFD】笔记step9-12
  7. 虚幻蓝图实现只狼的钩索系统(2)-射线检测
  8. Clover 驱动文件夹_黑苹果(clover文件夹中各个文件的主要功能)
  9. 力扣杯2023春-个人赛、战队赛
  10. Node.js、npm环境配置与Vue项目创建