跑模型——labelme的json文件转成yolo使用的txt文件(语义分割)

前言
将labelme多边形标注的json文件转换成yolo使用的txt文件

import os
import json
import numpy as np
from tqdm import tqdm#实现函数
def json2txt(path_json, path_txt):  # 可修改生成格式with open(path_json, 'r') as path_json:jsonx = json.load(path_json)with open(path_txt, 'w+') as ftxt:width,height = jsonx['imageWidth'],jsonx['imageHeight']for shape in jsonx['shapes']:label_name = shape['label']label_index = str(classes_name.index(label_name))label = label_index + ' 'xy = np.array(shape['points'])strxy = ''for x, y in xy:x = float(x)/widthy = float(y)/heightstrxy += str(x) + ' ' + str(y) + ' 'label += strxyftxt.writelines(label + "\n")dir_json = 'D:/data_val/phone_1_dai/new/output/'  # json存储的文件目录 这里需要在最后加'/'
dir_txt = 'D:/data_val/phone_1_dai/new/txt'  # txt存储目录#如果不存在则创建txt存储目录
os.makedirs(dir_txt,exist_ok=True)
list_json = os.listdir(dir_json)#标签名
classes_name = ["_background_", 'phone']pbar = tqdm(total=len(list_json))
error_list=[]
for cnt, json_name in enumerate(list_json):try:# print('cnt=%d,name=%s' % (cnt, json_name))path_json = dir_json + json_namepath_txt = dir_txt +'/'+ json_name.replace('.json', '.txt')json2txt(path_json, path_txt)except Exception as e:# print('cnt=%d,name=%s' % (cnt, json_name))error_list.append({json_name:e})pbar.update(1)for error in error_list:print(error)
print(f"error length={len(error_list)}")

如果有什么不懂的,可以在评论区底下评论哦,我会努力解答的

欢迎大家点赞或收藏,点赞或收藏可以鼓励作者更新哟~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/804944.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flink常见面试问题(附答案)

目录 基础篇1. 什么是Apache Flink?2. Flink与Hadoop的区别是什么?3. Flink中的事件时间(Event Time)和处理时间(Processing Time)有什么区别?4. Flink的容错机制是如何实现的?5. 什…

node.js 包管理工具介绍 (npm与Yarn详细说明)

一、什么是包? 包(package)代表了一组特定功能的源码集合 二、什么是包管理工具? 也就是管理包的应用软件,可以对包进行下载、更新、删除、上传等操作。借助包管理工具,可以快速开发项目提升开发效率。包…

4.2.4 理解路由器数据包过程

1、实验目的 通过本实验可以掌握: 了解IP路由原理了解数据包封装和解封装的概念了解路由器路由和交换过程 2、实验拓扑 观察路由器路由数据包过程的实验拓扑如图4-3所示,设备接口地址信息如表4-2所示。 图4-3 观察路由器路由数据包过程的实验拓扑 本…

用Python编写GUI程序实现WebP文件批量转换为JPEG格式

在Python编程中,经常会遇到需要处理图片格式的情况。最近,我遇到了一个有趣的问题:如何通过编写一个GUI程序来实现将WebP格式的图片批量转换为JPEG格式?在这篇博客中,我将分享我使用Python、wxPython模块和Pillow库实现…

linux系统离线安装nginx

perlnginx是一个高性能的http和反向代理服务器,并发能力很强,一般用来做负载均衡比较多,分布式系统开发中用作web服务器。 一、下载 地址:nginx: download 我们下载这个稳定版本 二、环境依赖检查 nginx安装需要很多外部依赖&…

浅拷贝和深拷贝

1、两者区别: 首先对于一个对象中的基本数据类型,来做浅拷贝和深拷贝其实没有什么区别,都是将原始值复制一份给新的对象,但是对于对象中的引用数据类型来说,浅拷贝只是将引用数据类型的地址值复制一份给新的对象&#…

python开发poc,fofa爬虫批量化扫洞

学习使用python做到批量化的漏洞脚本 1.通过fofa搜索结果来采集脚本 2.批量化扫描漏洞 ---glassfish存在任意文件读取在默认48484端口,漏洞验证的poc为: "glassfish" && port"4848" && country"CN" http://loca…

Sybase ASE中的char(N)的坑以及与PostgreSQL的对比

1背景 昨天,一朋友向我咨询Sybase ASE中定长字符串类型的行为,说他们的客户反映,同样的char类型的数据,通过jdbc来查,Sybase库不会带空格,而PostgreSQL会带。是不是这样的?他是PostgreSQL的专业大拿,但因为他手头没有现成的Sybase ASE环境,刚好我手上有,便于一试。 …

flutter 安卓打包自定义名字

打包的名字如 app.1.0.1_relase_201283893.apk 实现 配置安卓项目的中的build.gradle (android/app/build.gradle ) 新增 android { 内 applicationVariants.all { variant ->variant.outputs.all {def appName "拓车服管家" // 文件名…

Python实现读取dxf文件的所有字符

Python实现读取dxf文件的所有字符 import ezdxfdef read_dxf_and_print_text(filename):# 加载DXF文件doc ezdxf.readfile(filename)# 遍历所有的实体for entity in doc.entities:# 检查实体是否是TEXT、MTEXT或DIMENSIONif isinstance(entity, ezdxf.entities.Text):print(f…

SparkBug解决:Type mismatch; found : org.apache.spark.sql.Column required: Double

def assginFlag(aizmuth:Double):Option[Int] {val interval 0.5val index (aizmuth / interval ).toIntif (index > 0 && index < 720 ) Some(index 1) else None} assginFlag方法中的条件判断条件 (index > 0 && index < 720) 返回的是一个布…

计算机视觉——图像特征提取D2D先描述后检测特征提取算法原理

概述 局部特征提取是计算机视觉中的一个重要任务&#xff0c;它旨在从图像中提取出能够代表图像局部结构和外观信息的特征。这些特征通常用于图像匹配、物体识别、三维重建、跟踪和许多其他应用。传统方法&#xff0c;如尺度不变特征变换&#xff08;SIFT&#xff09;&#xf…

每天学习一个Linux命令之hostnamectl

每天学习一个Linux命令之hostnamectl 介绍 在Linux系统中&#xff0c;有许多命令都可以用来管理系统的各种配置&#xff0c;其中之一就是hostnamectl命令。hostnamectl命令可以用于查看和更改系统的主机名及相关设置。本篇博客将为您详细介绍hostnamectl命令&#xff0c;并列…

使用R语言计算矩形分布(均匀分布)并绘制图形

理论部分 矩形分布&#xff08;均匀分布&#xff09;&#xff0c;是指在某一区间内&#xff0c;随机变量取任何值的概率都是相同的。这种分布的概率密度函数在一个特定的区间内是一个常数&#xff0c;因此其图形呈现出一个矩形的形状&#xff0c;故得名为“矩形分布”。在概率…

【Spring进阶系列丨第八篇】Spring整合junit 面向切面编程(AOP)详解

文章目录 一、Spring整合junit1.1、导入spring整合junit的jar1.2、在测试类上添加注解1.3、说明 二、面向切面编程(AOP)2.1、问题引出2.2、AOP2.2.1、概念2.2.2、作用2.2.3、优势2.2.4、实现方式2.2.5、专业术语2.2.5.1、连接点2.2.5.2、切入点2.2.5.3、通知/增强2.2.5.4、织入…

5款最值得推荐的电脑监控软件丨高人气甄选

在企业和学校等场所&#xff0c;电脑监控软件被广泛应用于员工或学生的行为管理。 通过监控软件&#xff0c;管理者可以了解员工或学生的学习和工作情况&#xff0c;及时发现并纠正不当行为&#xff0c;提高工作效率和学习效果。同时&#xff0c;这类软件还可以用于保护企业机…

世链空投|zkLink空投代撸有哪些好处?zkLink空投代撸需要啥条件

世链空投(shilian.com)报道&#xff0c;随着2024年zkLink空投越来越火&#xff0c;zkLink空投代撸已经成为普通人一种常见的参与方式&#xff0c;并且越来越受到大众的欢迎。但是&#xff0c;普通人想要参与zkLink空投代撸&#xff0c;仍然需要了解什么是zkLink空投代撸&#x…

CMD 操作

修复磁盘 打开命令提示符&#xff0c;输入“chkdsk G: /f”&#xff08;G:代表你需要修复的硬盘驱动器&#xff0c;/f代表修复错误&#xff09; 安装软件 python安装包&#xff0c;打开CMD, pip install 〔*包〕

AI概念普及-LangChain

文章目录 概念产品架构核心特性核心组件使用场景其他资源开发支持结论Langchain详细介绍LangChain的具体实现原理LangChain如何与其他大型语言模型&#xff08;LLM&#xff09;集成&#xff0c;有哪些具体的接口或协议&#xff1f;LangChain的性能表现和优化策略有哪些&#xf…

【多线程】线程(线程的概念+线程的创建)

文章目录 线程一、线程的概念1.引入线程的目的2.什么叫线程&#xff08;Thread&#xff09;1.线程的特点&#xff1a;2.进程和线程的区别&#xff08;面试题&#xff09;&#xff1a;3.Java的多线程编程 二、创建线程1.继承Thread重写run入口方法&#xff1a;使用jconsolesleep…