格式转化——Labelme标注好的json文件批量转为png(标签)文件(物体为红色,背景为黑色)和jpg原图
作用如题目,批量将标注好的json文件转成png标签,jpg原图,其中标签时红黑图。
代码如下:
import argparse
import base64
import json
import os
import os.path as osp
import imgviz
import PIL.Image
import yaml
from labelme.logger import logger
from labelme import utils'''single json file'''
def main():logger.warning("This script is aimed to demonstrate how to convert the ""JSON file to a single image dataset.")logger.warning("It won't handle multiple JSON files to generate a ""real-use dataset.")parser = argparse.ArgumentParser()#parser.add_argument("json_file")parser.add_argument('--jsonfiles', nargs='?', const=True, default="datasets//before", help='resume most recent training') #设置输入路径 将default里面的路径转成json文件下的路径parser.add_argument("-o", "--out", default="datasets//png") #设置输出路径 default里面的路径改为要存放标签png和原图jpg的路径args = parser.parse_args()import globjsonfiles = glob.glob(args.jsonfiles+"/*.json")print(jsonfiles)for json_file in jsonfiles:if args.out is None:out_dir = osp.basename(json_file).replace(".", "_")out_dir = osp.join(osp.dirname(json_file), out_dir)else:out_dir = args.outif not osp.exists(out_dir):os.mkdir(out_dir)data = json.load(open(json_file))imageData = data.get("imageData")if not imageData:imagePath = os.path.join(os.path.dirname(json_file), data["imagePath"])with open(imagePath, "rb") as f:imageData = f.read()imageData = base64.b64encode(imageData).decode("utf-8")img = utils.img_b64_to_arr(imageData)label_name_to_value = {"_background_": 0}for shape in sorted(data["shapes"], key=lambda x: x["label"]):label_name = shape["label"]if label_name in label_name_to_value:label_value = label_name_to_value[label_name]else:label_value = len(label_name_to_value)label_name_to_value[label_name] = label_valuelbl, _ = utils.shapes_to_label(img.shape, data["shapes"], label_name_to_value)label_names = [None] * (max(label_name_to_value.values()) + 1)for name, value in label_name_to_value.items():label_names[value] = namelbl_viz = imgviz.label2rgb(label=lbl, image=imgviz.asgray(img), label_names=label_names, loc="rb")label_name = json_file.split('\\')[-1].replace('.json','.png')image_name = json_file.split('\\')[-1].replace('.json','.jpg')PIL.Image.fromarray(img).save(osp.join(out_dir, image_name))utils.lblsave(osp.join(out_dir, label_name), lbl)PIL.Image.fromarray(lbl_viz).save(osp.join(out_dir, "label_viz.png"))with open(osp.join(out_dir, "label_names.txt"), "w") as f:for lbl_name in label_names:f.write(lbl_name + "\n")# 生成info.yaml文件# logger.warning('info.yaml is being replaced by label_names.txt')# info = dict(label_names=label_names)# with open(osp.join(out_dir, 'info.yaml'), 'w') as f:# yaml.safe_dump(info, f, default_flow_style=False)logger.info("Saved to: {}".format(out_dir))if __name__ == "__main__":main()
相关文章:
格式转化——Labelme标注好的json文件批量转为png(标签)文件(物体为红色,背景为黑色)和jpg原图
作用如题目,批量将标注好的json文件转成png标签,jpg原图,其中标签时红黑图。 代码如下: import argparse import base64 import json import os import os.path as osp import imgviz import PIL.Image import yaml from labelm…...
力扣刷题--2535. 数组元素和与数字和的绝对差【简单】
题目描述 给你一个正整数数组 nums 。 元素和 是 nums 中的所有元素相加求和。 数字和 是 nums 中每一个元素的每一数位(重复数位需多次求和)相加求和。 返回 元素和 与 数字和 的绝对差。 注意:两个整数 x 和 y 的绝对差定义为 |x - y| 。…...
2024年【危险化学品经营单位安全管理人员】考试报名及危险化学品经营单位安全管理人员找解析
题库来源:安全生产模拟考试一点通公众号小程序 危险化学品经营单位安全管理人员考试报名考前必练!安全生产模拟考试一点通每个月更新危险化学品经营单位安全管理人员找解析题目及答案!多做几遍,其实通过危险化学品经营单位安全管…...
IntelliJ IDEA集成Baidu Comate,商城系统支付交易功能开发实战
文章目录 Baidu Comate介绍安装配置体验安装插件配置体验注释生成代码技术问答 实战设计表生成代码导入数据 总结 Baidu Comate介绍 在科技互联网飞速发展的今天,百度凭借其深厚的技术积累和创新能力,推出了一款名为Baidu Comate智能代码助手的产品。该…...
20212313 2023-2024-2 《移动平台开发与实践》第5次作业
20212313 2023-2024-2 《移动平台开发与实践》第5次作业 1.实验内容 设计并开发一个地图应用系统。 该实验需提前申请百度API Key,调用接口实现百度地图的定位功能、地图添加覆盖物和显示文本信息。 2.实验过程 2.1 获取SHA1 (1)打开控制台…...
Python图形界面(GUI)Tkinter笔记(十二):用【Entry()】实现单行文本输入(3)
Tkinter库中的单行文本输入框(Entry)除了与get()方法组合产生多姿多彩的反应,还可以与insert()方法组合而产生新的功能。例如用于用户不作任何输入就用默认值当作用户的输入这种场境,或在输入文本中加入指定的字符等。 其余笔记:【Python图形界面(GUI)Tkinter笔记(总目录…...
前端渲染页面的原理
之前一直不愿意写一篇关于原理的,因为说起来实在是太繁杂,要写得细,码字梳理,计算下来起码都要差不多三周。以前一直躲避这个事情,现在反正有时间,为了不荒废自己,那就从头捋一遍。也方便自己后…...
【一竞技DOTA2】RAMZES666替补参加裂变联赛
1、根据主办方文件,RAMZES666将继续作为Tundra战队替补参加裂变联赛。该比赛为欧洲线上赛,于5月27日-30日举行,总奖金8万美元。 除此之外,Nigma战队在上个月宣布四号位Matthew离队后,也选择启用老队员GH参赛。而在本月初让ah fu转回教练、携替补Thiolicor出战PGL瓦拉几亚的Secr…...
1109 擅长C(测试点0,1,2,3)
当你被面试官要求用 C 写一个“Hello World”时,有本事像下图显示的那样写一个出来吗? ..C.. .C.C. C...C CCCCC C...C C...C C...C CCCC. C...C C...C CCCC. C...C C...C CCCC. .CCC. C...C C.... C.... C.... C...C .CCC. CCCC. C...C C...C C...C C…...
北京新高度画室:端午假期免费吃,住,学!
经历了联考校考的过关斩将 2024届追梦人终于要迎来最后一战高考 承载着梦想的日子在一天天靠近 千里遥程将要看到希望的曙光 新高度祝所有高三学子高考顺利金榜题名 梦想是一场接力赛 新高度画室2025届集训已经开始 如果你错过了清明、错过了五一 那么高考&端午试学…...
电脑重要文件如何加密保护?教你两种方法
加密是保护电脑重要文件的常见方法,可以有效避免文件数据泄露。那么,电脑重要文件该如何加密保护呢?下面小编就来教你两种方法,帮助你解决文件安全问题。 超级加密3000 超级加密3000是一款专业的电脑数据加密软件,可以…...
新零售收银解决方案:传统门店超市的数字化-亿发
在数字化浪潮的推动下,零售行业正经历着前所未有的变革。阿里巴巴提出的“新零售”概念,不仅仅是一个商业口号,它代表了一种全新的商业模式和运营理念。随着时代的进步和消费需求的不断升级,新零售的兴起已成为行业发展的必然趋势…...
独家揭秘!Amazon、lazada、Shopee测评自养号,新手也能秒变高手!
近年来,随着国内卖家涌入跨境电商平台,市场竞争愈加激烈。为了迅速占领市场,测评变得至关重要。然而,真人测评供不应求,服务商账号质量不一,且存在高权重账号稀缺和黑卡下单风险。因此,许多大卖…...
企企通入选第一新声《2024年中国CIO数字化产品选型白皮书》供应链数字产品可信名录
近日,第一新声研究院根据多年产业数字化研究,历经近半年时间,并综合近200位CIO调研与推荐意见,发布《2024年中国CIO数字化产品选型白皮书》,并推出企业CIO选型指南及可信产品名录。企企通凭借其优秀的采购数字化与供应…...
Linux中 “权限设置修改”
目录 一、权限 (1)权限三大类: (2)文件的权限: (3)目录的权限: (4)用户的角色: 二、文件的权限位 三、修改用户权限 …...
9.1 Go语言入门(环境篇)
Go语言入门(环境篇) 目录一、什么是Go语言二、下载安装配置Go语言开发环境1. 下载2. 安装3. 配置环境变量4. 安装环境验证 三、 开发工具1. 下载2. 安装3. 激活4. 配置SDK 四、 创建go工程文件并运行1. 创建go工程2. 示例代码3. 运行代码 目录 一、什么…...
简单的网页分享按钮代码
创建一个网页分享按钮通常涉及到HTML、CSS和JavaScript的组合使用。下面是一个简单的示例代码,展示了如何创建一个包含微博、QQ和QQ空间分享的按钮。请注意,这只是一个前端的实现示例,实际分享功能需要依赖于相应的社交媒体平台提供的API或分…...
ld链接文件
文章目录 1. sections缩写2. 链接脚本2.1 MEMORY(内存命令)2.1.1 作用2.1.2 格式 2.2 SECTIONS(段命令)2.2.1 作用2.2.2 格式 2.3 特殊符号含义2.4 通配符2.5 Eg 1. sections缩写 2. 链接脚本 https://www.cnblogs.com/jianhua19…...
React-事件绑定
React基础事件绑定 语法:on事件名称{事件处理程序},整体上遵循驼峰命名法 使用事件对象参数 语法:在事件回调函数中设置形参e...
使用“tcpdump”查看原始数据包
使用“tcpdump”查看原始数据包 尽管像 Snort 这样的工具可以出色地筛选通过我们网络的所有内容,但有时需要查看原始数据。为此,我们最好的工具是“tcpdump”。 使用 tcpdump 的最基本方法是简单地发出以下命令: tcpdump 使用 -v 选项可以…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
