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. 北大数学天才毕业后坚持出家:理想现实间的挣扎
  2. 利用mk-table-checksum监测Mysql主从数据一致性操作记录
  3. Docker简介以及mysql和redis的部署
  4. 神策数据周文君:杜蕾斯、滴露都在用的品牌数据营销三步法
  5. 前端开发笔记(2)css基础(上)
  6. C#_XXX事件 的重载均与委托System.EventHandler不匹配
  7. 抢红包概率是随机的吗_顺丰发5亿红包给员工:管理学的随机奖励还能这么玩...
  8. 获取代理电脑的https证书方法
  9. HTML多人联机游戏,前端实现双人联机版俄罗斯方块小游戏2(实现双人联机)
  10. Autel Maxisys Elite Common FAQs
  11. java8判断对象是否为空新写法
  12. 你追逐梦想之前听到的十种谎言
  13. 使用串口发送实现ACX720开发板时钟显示
  14. 跳动公差与其他几何公差(一)
  15. 买二手房不后悔先知道8件事 高楼层未必卖得好
  16. 目标框检测中准确率、召回率、AP、mAP计算原理及代码
  17. sed 命令详细讲解
  18. 图:国行HTC 8X修改市场区域
  19. php不做手术会怎么样,薇娅做手术上热搜!这种病年轻人高发,有人治了三年还没治好...
  20. 趣图丨阿里p6大概啥水平?是不是不行?

热门文章

  1. autoware官方入门教使用
  2. VBA小程序_遍历所有工作表_复制粘贴为数值
  3. 读书笔记《能力陷阱》第四章:试着朝更多不同的方向发展自己
  4. 一口气推荐16个让人震惊的黑科技工具
  5. PVCBOT【27号】机械避役--线控变色龙机器人
  6. 转载-工业界视频理解解决方案大汇总(人工智能前沿讲习)
  7. TIA博途_STEP7版本的升级与移植相关难点汇总
  8. TIA博途中变长数组的介绍与使用入门示例
  9. 盘点适合入门学习的C/C++开源项目
  10. 动态分析Android App之动态调试