在labelme使用过程中,有些数据导入模型过程中,导入的是灰度图像,但是labelme批量生成的是彩色图像,因此参考网上一个老哥的方法后加了点修改,让labelme直接批量生成灰度图以及可视化图像。

参考链接

import argparse
import json
import os
import os.path as osp
import base64
import warnings
from PIL import Image
import PIL.Image
import yamlfrom labelme import utilsimport cv2
import numpy as np
from skimage import img_as_ubyte# from sys import argvdef main():warnings.warn("This script is aimed to demonstrate how to convert the\n""JSON file to a single image dataset, and not to handle\n""multiple JSON files to generate a real-use dataset.")json_file = "D:\\test"  ###json所在文件夹# freedomlist_path = os.listdir(json_file)print('freedom =', 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'])lbl8unit = Image.fromarray(lbl).convert('L')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('.', '_')out_dir = osp.basename(path).split('.json')[0]save_file_name = out_dir# out_dir = osp.join(osp.dirname(path), out_dir)if not osp.exists(json_file + 'mask'):os.mkdir(json_file + 'mask')maskdir = json_file + 'mask'if not osp.exists(json_file + 'mask_viz'):os.mkdir(json_file + 'mask_viz')maskvizdir = json_file + 'mask_viz'if not osp.exists(json_file+'label_image'):os.mkdir(json_file+'label_image')imagedir = json_file+'label_image'out_dir1 = maskdir# if not osp.exists(out_dir1):#     os.mkdir(out_dir1)PIL.Image.fromarray(img).save(imagedir + '/' + save_file_name + '.png')lbl8unit.save(out_dir1 + '/' + save_file_name + '_mask.png')PIL.Image.fromarray(lbl_viz).save(maskvizdir + '/' + save_file_name +'_label_viz.png')# if not osp.exists(json_file + '\\' + 'mask_png'):#     os.mkdir(json_file + '\\' + 'mask_png')# mask_save2png_path = json_file + '\\' + 'mask_png'################################# mask_pic = cv2.imread(out_dir1+'\\'+save_file_name+'_label.png',)# print('pic1_deep:',mask_pic.dtype)# mask_dst = img_as_ubyte(lbl)  # mask_pic# print('pic2_deep:', mask_dst.dtype)# cv2.imwrite(mask_save2png_path + '\\' + save_file_name + '_label.png', mask_dst)##################################with open(osp.join(out_dir1, 'label_names.txt'), 'w') as f:for lbl_name in lbl_names:f.write(lbl_name + '\n')warnings.warn('info.yaml is being replaced by label_names.txt')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__':# base64path = argv[1]main()

Labelme直接生成灰度图相关推荐

  1. 在opencv中如何生成灰度图

    灰度图就是用一个通道来表示灰度值,范围为0-255,也就是8byte就可以. 所以在openv中type CV_8UC1就可以表示灰度图. Mat img(size, CV_8UC1, Scalar( ...

  2. opencv生成灰度图并保存

    #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...

  3. matlab如果图片格式灰度矩阵,matlab矩阵生成灰度图

    Q4:matlab 如何将彩图转成灰度图 >> I=imread(D:\Lena.jpg); >> x=rgb2gray(I); >> figure(1); > ...

  4. 根据RGB图像中颜色值生成标签灰度图,

    1.前言: 代码目的:将RGB图像中不同的颜色生成标签灰度图,cyan[青蓝色]映射为0,red[红色]映射为1,yellow[黄色]映射为2 2.代码 # -*- coding: utf-8 -*- ...

  5. 【Verilog】FPGA驱动Ov7670/Ov7725搭建视频通路(RGB565、灰度图)

    一.课题功能指标要求 (一)课程目的 • 加深对数字电路时序的理解: • 掌握 OV 系列摄像头输出时序: • 掌握 I2C 总线时序,以及使用 verilog 驱动三态门的方法: • 掌握数字系统设 ...

  6. 2021-07-27 对labelme标注出来的JSON文件进行灰度图转化(标签值0.1.2.3.4)

    对labelme标注出来的JSON文件进行灰度图转化(标签值0.1.2.3.4) 原图如下: 标注后生成json文件如下: import cv2 import numpy as np import j ...

  7. 【学习笔记】使用Tensorflow版ENet训练自己的数据集labelme生成灰度标签图片问题

    使用的代码:kwotsin所写的Tensorflow版,180星 记录一下训练的过程,方便以后翻阅. 首先是数据集的准备,数据集的文件夹结构为: ├── test ├── testannot ├── ...

  8. blender导入灰度图生成地形模型

    安装软件 在此处下载blender并安装. 添加平面 1.打开blender,右键删除初始的立方体. 2.shift+a选择平面添加进场景: 3.按下s键鼠标拖动调节平面大小确定后按下鼠标左键: 4. ...

  9. UE4灰度图生成地图记录blender生成城市地形

    引擎:4.26 首先,在网上下载灰度地形图.这边先下载了如下的灰度地形图. 然后,使用ps来修改图片的格式,以适应UE4引擎的使用. 将图片修改成灰度,16位通道. 然后将图片导出成png格式(灰度, ...

  10. unity 读取灰度图生成按高程分层设色地形模型

    准备灰度图 1.高程按比例对应hue色相(hsv)生成mesh效果 o.color = float4(hsv2rgb(float3(v.vertex.y/100.0, 0.5, 0.75)), 1.0 ...

最新文章

  1. 绘制对象iPhone开发基础教程 笔记
  2. 西华大学计算机学院陈鹏,中国计算机学会CCF服务计算专委会走进西华大学
  3. macos可以升级到指定版本吗_iOS14如期而至!重大更新的全新版本,值得升级吗?答案在这...
  4. c语言经典程序100txt例,C语言经典程序100例txt格式.doc
  5. 王昶衡(帮别人名字作诗)
  6. PAT乙级(1034 有理数四则运算)
  7. WCF远程服务器返回了意外响应: (413) Request Entity Too Large问题处理
  8. 初识Firebug 全文 — firebug的使用
  9. anaconda python_Anaconda下Python环境下载及安装
  10. Spring-tx-PlatformTransactionManager(DataSourceTransactionManager)
  11. 博科brocade光纤交换机alias-zone的划分--实操案例
  12. 小米无线网卡linux驱动下载,Linux下安装MT7601U无线网卡驱动
  13. pdf签名无效解决办法_谁告诉你PDF不能修改了?我不仅可以直接编辑,还能随便转化格式!...
  14. Android--刷机教程
  15. 中国互联网迎来第二次电商盛世:谁淘汰了红极一时的淘品牌?
  16. Oracle运维手册
  17. 网络舆情数据挖掘分析的三点方法和建议
  18. 源码阅读-Record
  19. 和讯博客广告位置改变
  20. 微信小游戏服务器数据持久化,微信小程序wx.setStorage数据缓存实现缓存过期时间...

热门文章

  1. 基因重组- 冲刺计划
  2. WTS考勤系统报表实现原理
  3. codeforces A. Statues
  4. 会写SQL==精通MYSQL?NONONO,进来学习一下吧! 0.0
  5. xctf攻防世界 CRYPTO高手进阶区 best_rsa
  6. iot会议纪要 20180105
  7. 苹果电子邮件怎么注册_无需购买 iPhone,可以使用哪些苹果的优质服务?
  8. 总以为猜对了结局,但烧脑推理电影却总是让我扭伤腰
  9. 产品经理职责技能和所需证书
  10. FFMPEG :resource temporarily unavailable