labelme画出的标注json转换成二值标签图,并解决label全黑问题
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全黑问题相关推荐
- json转换成excel在线js小工具分享【不限制大小】
起因 我们在工作过程中,偶尔会有需求是把json转换成excel的需求.一般这个时候,我们会跑到度娘那,在输入框中输入:"json excel".然后,你会发现这个一个网站&quo ...
- json转php数组 在线,PHP如何将JSON转换成数组/对象
在PHP中可以使用json_decode()函数将JSON编码的字符串转换为适当的PHP数据类型.默认情况下,json_decode()函数将返回一个对象:但是,可以指定第二个参数为一个布尔值true ...
- excel函数公式html文档,Excel中把计算式转换为运算结果的方法 EXCEL中计算出的公式如何转换成纯文本内容?...
如何在EXCEL中将计算公式直接变结果如我在A1输入计算式:(1+2*3+4/5-6)*1.2+(1+5) 如何在B1得出该计算式的选中B1然后按快捷键ctrl+F3,进入名称管理器,新建,输入任意名 ...
- json转换成dart类 JSON to Dart
json_to_dart的使用 如果我们得到一个特别复杂的JSON,有时候会无从下手开始写Model,这时候就可以使用一些辅助工具.我认为json_to_dart是比较好用的一个.它可以直接把json ...
- 在线JSON转换成Excel文件工具
在线JSON转换成Excel文件工具 在线JSON转换成Excel文件工具 本工具可以将JSON数据在浏览器本地转换成Excel支持一键下载. JSON:(JavaScript Object Nota ...
- php将json转化成数组,php如何把json转换成数组
php把json转换成数组的方法:首先创建一个php示例文件:然后创建一组json格式数据:接着通过"json_decode"函数把json转换成数组:最后通过"var_ ...
- php将json转换成对象,php将json转换成对象或数组
php将json转换成对象或数组 发布时间:2020-06-01 16:31:29 来源:亿速云 阅读:126 作者:鸽子 在PHP中可以使用json_decode()函数将JSON编码的字符串转换为 ...
- PHP把JSON转换成数组
在PHP中可以使用json_decode()函数将JSON编码的字符串转换为适当的PHP数据类型.默认情况下,json_decode()函数将返回一个对象:但是,可以指定第二个参数为一个布尔值true ...
- c#(winform)将响应的json转换成list集合
c#(winform)将响应的json转换成list集合 兄弟们在找这个转换方法时,可以搜索json反序列化. 我的解决方法是这样 先将拿到的json文件到 http://www.bejson.com ...
最新文章
- 北大数学天才毕业后坚持出家:理想现实间的挣扎
- 利用mk-table-checksum监测Mysql主从数据一致性操作记录
- Docker简介以及mysql和redis的部署
- 神策数据周文君:杜蕾斯、滴露都在用的品牌数据营销三步法
- 前端开发笔记(2)css基础(上)
- C#_XXX事件 的重载均与委托System.EventHandler不匹配
- 抢红包概率是随机的吗_顺丰发5亿红包给员工:管理学的随机奖励还能这么玩...
- 获取代理电脑的https证书方法
- HTML多人联机游戏,前端实现双人联机版俄罗斯方块小游戏2(实现双人联机)
- Autel Maxisys Elite Common FAQs
- java8判断对象是否为空新写法
- 你追逐梦想之前听到的十种谎言
- 使用串口发送实现ACX720开发板时钟显示
- 跳动公差与其他几何公差(一)
- 买二手房不后悔先知道8件事 高楼层未必卖得好
- 目标框检测中准确率、召回率、AP、mAP计算原理及代码
- sed 命令详细讲解
- 图:国行HTC 8X修改市场区域
- php不做手术会怎么样,薇娅做手术上热搜!这种病年轻人高发,有人治了三年还没治好...
- 趣图丨阿里p6大概啥水平?是不是不行?