图像数据常用的标注工具是labelme,标注的格式是json。labelme标注结果可视化,是将标注结果绘制到原始图像上,以方便查看标注结果。

1 json文件读取与保存

由于labelme标注的保存格式为json,所以必须掌握json文件的读取与保存。

import json
#json文件读取
anno= json.load(open("test.json", "r", encoding="utf-8"))
#json文件保存
with open('test.json', 'w') as f:json.dump(ann, f)

2 opencv中文路径读写

opencv默认的cv2.imwrite()和cv2.imread()函数是不支持中文路径的。

import os
import cv2
from pathlib import Path#支持中文路径读取图片
def cv_imread(filePath):cv_img=cv2.imdecode(np.fromfile(filePath,dtype=np.uint8),-1)cv_img = cv2.cvtColor(cv_img, cv2.COLOR_RGB2BGR)return cv_img#支持中文路径存储图片
cv2.imencode('.png', image)[1].tofile(save_dir+image_path)

3 矩形rectangle目标可视化

定义线line目标可视化函数为vis_labelme_line_label。label_dir为labelme标注文件和原始图片存储目录,save_dir为可视化图片保存的文件目录。

import os
import cv2
from pathlib import Path#支持中文路径
def cv_imread(filePath):cv_img=cv2.imdecode(np.fromfile(filePath,dtype=np.uint8),-1)cv_img = cv2.cvtColor(cv_img, cv2.COLOR_RGB2BGR)return cv_imgdef vis_labelme_rect_label(label_dir, save_dir='res/'):label_dir = str(Path(label_dir)) + '/'save_dir  = str(Path(save_dir))  + '/'if not os.path.exists(save_dir):os.makedirs(save_dir)label_files = glob(label_dir+'*.json')for label_file in label_files:anno= json.load(open(label_file, "r", encoding="utf-8"))image_path = anno['imagePath']image = cv_imread(label_dir+image_path)shapes = anno['shapes']for s in shapes:pts = np.array(s['points']).astype(np.int)x1  = min(pts[:, 0])y1  = min(pts[:, 1])x2  = max(pts[:, 0])y2  = max(pts[:, 1])cv2.rectangle(image, (x1, y1), (x2, y2), (255, 0, 255), 1)cv2.imencode('.png', image)[1].tofile(save_dir+image_path)

4 线line目标可视化

定义线line目标可视化函数为vis_labelme_line_label。label_dir为labelme标注文件和原始图片存储目录,save_dir为可视化图片保存的文件目录。

import os
import cv2
from pathlib import Path#支持中文路径
def cv_imread(filePath):cv_img=cv2.imdecode(np.fromfile(filePath,dtype=np.uint8),-1)cv_img = cv2.cvtColor(cv_img, cv2.COLOR_RGB2BGR)return cv_imgdef vis_labelme_line_label(label_dir, save_dir='res/'):label_dir = str(Path(label_dir)) + '/'save_dir  = str(Path(save_dir))  + '/'if not os.path.exists(save_dir):os.makedirs(save_dir)label_files = glob(label_dir+'*.json')for label_file in label_files:anno= json.load(open(label_file, "r", encoding="utf-8"))image_path = anno['imagePath']image = cv_imread(label_dir+image_path)shapes = anno['shapes']for s in shapes:pts = s['points']x1, y1 = pts[0]x2, y2 = pts[1]cv2.line(image, (int(x1), int(y1)), (int(x2), int(y2)), (255, 0, 255), 1)cv2.imencode('.png', image)[1].tofile(save_dir+image_path)

5 【python三维深度学习】python三维点云从基础到深度学习_Coding的叶子的博客-CSDN博客_三维点云深度学习

更多三维、二维感知算法和金融量化分析算法请关注“乐乐感知学堂”微信公众号,并将持续进行更新。

labelme标注结果可视化(持续补充)相关推荐

  1. 【Matlab 绘图——持续补充中】

    Matlab 绘图--持续补充中 目录 plot() 函数 常用线型.颜色.symbol loglog,semilogx,semilogy,plotyy 图片完善--标题title,坐标轴名称xlab ...

  2. 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 ...

  3. php程序员面试题(持续补充,偏中级面试题)

    博主最近找工作,记录了不少面试题,有些还是挺值的学习的,这里记录一下.有些我会给出参考链接,有些需要大家自己百度了,持续补充.. 一.公司一 1.php的接口和抽象类有什么区别,应用场景有哪些 htt ...

  4. labelme标注文件转coco json,coco json转yolo txt格式,coco json转xml, labelme标注文件转分割,boxes转labelme json

    参考:https://github.com/wkentaro/labelme 一.labelme标注文件转coco json 1.标注时带图片ImageData信息,将一个文件夹下的照片和labelm ...

  5. LabelMe标注的.json文件批量转Dataset,通过查询到多种代码无法在我电脑上正常工作,发现他们有共同的报错,于是修改后能正常工作。

    1.写在前面 最近用到标注好的数据训练神经网络,用labelme标注好之后生成.json文件,我要实现的功能是目标分割,需要把.json文件转为VOC格式的数据.但是.json文件太多,于是在网上找一 ...

  6. 本地环境可以,生产环境不行(持续补充)

    "我本地是可以的啊,为什么生产上就不行了???" 上面那句话相信大家都有说过,现在似乎已经被戏称为"程序员最大的谎言",呵呵--我就来以我个人的遭遇来总结下教训 ...

  7. Pandas 函数方法汇总一览查询(持续补充改进)

    Pandas 函数方法汇总一览查询(持续补充改进) 文章目录 Pandas 函数方法汇总一览查询(持续补充改进) 初衷 Pandas 最最常用函数罗列 Pandas 函数用法示例 初衷 NumPy.P ...

  8. labelme 标注生成24位深度图像转换为8位

    新版本的 labelme 标注完成图像后,将 json 文件转换为图像时已经转换为 8 通道图像,如下图所示: 最近在看别人程序时发现经过图像标注生成的 label 一片黑,且图像深度为 24 位,如 ...

  9. Labelme标注的json数据转化为coco格式的数据

    Labelme标注的json数据转化为coco格式的数据 1. 转化方法一 2. 转化方法二 1. 转化方法一 import os import json import numpy as np imp ...

最新文章

  1. SAP PM 入门系列15 - IW41 维护订单确认
  2. 从一个被Tomcat拒绝的漏洞到特殊内存马
  3. hadoop集群搭建过程中不适用hostname发现slave,而是通过ip
  4. 40张最全计算机网络基础思维导图
  5. 22504!Windows 11 新预览版发布
  6. winform登录时,在密码框按下回车,直接登陆
  7. Node.js文件操作二
  8. ggplot2 | 统计变换的初步理解
  9. 标准C字符和字符串函数
  10. 开始学习:Ruby On Rails
  11. 计算机网络工程师多久过期,软考网络工程师证书有效期
  12. cadence SPB 16.2下载地址
  13. 木子网罗数据库笔试题(一)
  14. 中国有34个省市自治区(342个市)
  15. JAVA计算机毕业设计晨光文具店进销存系统设计与开发Mybatis+源码+数据库+lw文档+系统+调试部署
  16. 棋牌麻将 - 常用胡牌规则解释及汇总
  17. 电脑双屏有一个黑屏_电脑显示器 黑屏(只应对其中一个原因的方案)
  18. 微信小程序 17 个人中心和登录 的跳转
  19. android编辑图片和文字,微商图片和文字编辑器
  20. openCV+Python实战练习——银行卡号识别

热门文章

  1. 在线教育项目_整体介绍
  2. Java二维码工具类(使用zxing实现,可支持logo)
  3. Linux安装arm交叉编译器
  4. OA附件不能直接打开PDF文件
  5. abstract(抽象)的定义和使用
  6. 万字干货,Python语法大合集,一篇文章带你入门
  7. 解决iphone4无法格式化号码的问题
  8. 被困在深海沉船近3天,他奇迹般地活了下来!
  9. (半成品)Excel文件按要求导出至模板excel中(含配套数据)
  10. Wireshark嗅探和协议分析