当前位置: 首页 > news >正文

xml文件转成yolo中的txt文件

xml文件转成yolo中的txt文件

# coding=utf-8import os
import xml.dom.minidom
import cv2 as cvdef xml_to_txt(indir, outdir):os.chdir(indir)xmls = os.listdir('.')for i, file in enumerate(xmls):file_save = file.split('.')[0] + '.txt'file_txt = os.path.join(outdir, file_save)f_w = open(file_txt, 'w')# actual parsingDOMTree = xml.dom.minidom.parse(file)annotation = DOMTree.documentElementfilename = annotation.getElementsByTagName("path")[0]imgname = filename.childNodes[0].dataimg_temp = imgname.split('\\')[-1]img_temp = os.path.join(image_dir, img_temp)image = cv.imread(imgname)
#        cv.imwrite(img_temp, image)objects = annotation.getElementsByTagName("object")print(file)for object in objects:bbox = object.getElementsByTagName("robndbox")[0]cx = bbox.getElementsByTagName("cx")[0]x = float(cx.childNodes[0].data)print(x)cy = bbox.getElementsByTagName("cy")[0]y = float(cy.childNodes[0].data)print(y)cw = bbox.getElementsByTagName("w")[0]w = float(cw.childNodes[0].data)print(w)ch = bbox.getElementsByTagName("h")[0]h = float(ch.childNodes[0].data)print(h)cangel = bbox.getElementsByTagName("angle")[0]angle = float(cangel.childNodes[0].data)print(angle)cname = object.getElementsByTagName("name")[0]name = cname.childNodes[0].dataprint(name)x1 = x - w / 2.y1 = y - h / 2.x2 = x + w / 2.y2 = y - h / 2.x3 = x + w / 2.y3 = y + h / 2.x4 = x - w / 2.y4 = y + h / 2.temp = str(x1) + ' ' + str(y1) + ' ' + str(x2) + ' ' + str(y2) + ' ' + str(x3) + ' ' + str(y3) + ' ' + str(x4) + ' ' + str(y4) + ' ' + name + '\n'f_w.write(temp)f_w.close()image_dir = 'D:/img'   #img目录
indir = 'D:/xml'  # xml目录
outdir = 'D:/vtal'  # txt目录
xml_to_txt(indir, outdir)

相关文章:

xml文件转成yolo中的txt文件

xml文件转成yolo中的txt文件 # codingutf-8import os import xml.dom.minidom import cv2 as cvdef xml_to_txt(indir, outdir):os.chdir(indir)xmls os.listdir(.)for i, file in enumerate(xmls):file_save file.split(.)[0] .txtfile_txt os.path.join(outdir, file_sa…...

[Linux]手把手教你制作进度条小程序

[Linux]制作进度条小程序 文章目录 [Linux]制作进度条小程序C语言中的\n和\r字符缓冲区的刷新策略进行进度条代码编写 C语言中的\n和\r字符 C语言中字符分为两种: 可显字符控制字符 其中可显字符就是字符a这类的字符,控制字符就是\n这种控制字符。 对于我们制作…...

centos 重启 nginx 的三种方式

重启nginx的方式都有哪些,ChatGPT给出了比较全面的答案 1.service nginx restart 2.systemctl restart nginx 3.cd /usr/local/nginx/sbin 停止:./nginx -s stop 启动: ./nginx 重新加载配置: ./nginx -s reload 注意:cd /usr/local/nginx/s…...

跨境新手必看,海外推广的7个方式

如何根据自己的产品定位选择合适的平台推广,是作为跨境卖家都需要深入探讨的问题,由于每个社交平台覆盖的群体不同,所以在不同的平台进行广告投放时,要考虑受众群体和目标客户是匹配的。今天给大家分享几种常用的营销方式可以帮助…...

SpringBoot之logback-spring.xml详细配置

《logback官网》 各种指导文件&#xff0c;有空自己去看&#xff0c;比如&#xff1a;我们需要调整的是布局&#xff0c;直接看Layouts。 pom.xml <!-- 环境配置 --><profiles><profile><id>dev</id><properties><spring.profiles.a…...

P2141 [NOIP2014 普及组] 珠心算测验

题目背景 NOIP2014 普及 T1 题目描述 珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练&#xff0c;既能够开发智力&#xff0c;又能够为日常生活带来很多便利&#xff0c;因而在很多学校得到普及。 某学校的珠心算老师采用一种快速考察珠心算…...

[回馈]ASP.NET Core MVC开发实战之商城系统(四)

经过一段时间的准备&#xff0c;新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始&#xff0c;在之前的文章中&#xff0c;讲解了商城系统的整体功能设计&#xff0c;页面布局设计&#xff0c;环境搭建&#xff0c;系统配置&#xff0c;及首页【商品类型&#xff0c;ba…...

Vue.js常见错误处理包含代码

目录 以下是 Vue.js 中常见的错误&#xff0c;以及相应的处理方法和代码示例&#xff1a; 语法错误 错误信息&#xff1a;Error: [vm] "name" is not defined 解决方法&#xff1a;确保组件的 data 中定义了相同的属性。 示例代码&#xff1a; <template> &l…...

Go项目实现日志按时间及文件大小切割并压缩

关于日志的一些问题: 单个文件过大会影响写入效率&#xff0c;所以会做拆分&#xff0c;但是到多大拆分? 最多保留几个日志文件&#xff1f;最多保留多少天&#xff0c;要不要做压缩处理&#xff1f; 一般都使用 lumberjack[1]这个库完成上述这些操作 lumberjack //info文件wr…...

容器化的好处

容器化&#xff0c;是指使用容器技术&#xff08;Docker/containerd等&#xff09;运行应用程序&#xff08;容器&#xff09;&#xff0c;并使用容器编排技术&#xff08;例如 K8s&#xff09;来管理这些容器。 我在之前的文章 《使用 Dockerfile 构建生产环境镜像》 提及普通…...

TPlink DDNS 内网穿透?外网访问设置方法

有很多小伙伴都想知道&#xff1a;TPlink路由器怎么设置DDNS内网穿透&#xff1f;今天&#xff0c;小编就给大家分享一下TPlink DDNS 外网访问设置方法&#xff0c;下面是图文教程&#xff0c;帮助新手快速入门DDNS设置。 本文介绍的是云路由器TP-LINK DDNS的设置方法。TP-LIN…...

以CS32F031为例浅说国产32位MCU的内核处理器

芯片内核又称CPU内核&#xff0c;它是CPU中间的核心芯片&#xff0c;是CPU最重要的组成部分。由单晶硅制成&#xff0c;CPU所有的计算、接受/存储命令、处理数据都由核心执行。各种CPU核心都具有固定的逻辑结构&#xff0c;一级缓存、二级缓存、执行单元、指令级单元和总线接口…...

享元模式(Flyweight)

享元模式是一种结构型设计模式&#xff0c;主要通过共享技术有效地减少大量细粒度对象的复用&#xff0c;以减少内存占用和提高性能。由于享元模式要求能够共享的对象必须是细粒度对象&#xff0c;因此它又称为轻量级模式。 Flyweight is a structural pattern, which effecti…...

Cilium系列-11-启用带宽管理器

系列文章 Cilium 系列文章 前言 将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能. 但是通过对 Cilium 不同模式的切换/功能的启用, 可以进一步提升 Cilium 的网络性能. 具体调优项包括不限于: 启用本地路由(Native Routing)完全替换 KubeProx…...

无人机自动返航的关键技术有哪些

无人机的广泛应用使得无人机自动返航技术变得至关重要。在各种应对意外情况的背景下&#xff0c;无人机自动返航技术的发展对确保无人机的安全&#xff0c;以及提高其应用范围具有重要意义。接下来&#xff0c;便为大家详细介绍无人机自动返航所运用到的关键技术。 一、定位与导…...

Vision Transformer (ViT):图像分块、图像块嵌入、类别标记、QKV矩阵与自注意力机制的解析

作者&#xff1a;CSDN _养乐多_ 本文将介绍Vision Transformers &#xff08;ViT&#xff09;中的关键点。包括图像分块&#xff08;Image Patching&#xff09;、图像块嵌入&#xff08;Patch Embedding&#xff09;、类别标记、&#xff08;class_token&#xff09;、QKV矩…...

Mybatis:一对多映射处理

Mybatis&#xff1a;一对多映射处理 前言一、概述二、创建数据模型三、问题四、解决方案1、方案一&#xff1a;collection&#xff08;嵌套结果&#xff09;2、方案二&#xff1a;分步查询&#xff08;嵌套查询&#xff09; 前言 本博主将用CSDN记录软件开发求学之路上的亲身所…...

HTML+CSS+JavaScript:全选与反选案例

一、需求 1、单击全选按钮&#xff0c;下面三个复选框自动选中&#xff0c;再次单击全选按钮&#xff0c;下面三个复选框自动取消选中 2、当下面三个复选框全都选中时&#xff0c;全选按钮自动选中&#xff0c;下面三个复选框至少有一个未选中&#xff0c;全选按钮自动取消选…...

Python 程序设计入门(001)—— 安装 Python(Windows 操作系统)

Python 程序设计入门&#xff08;001&#xff09;—— 安装 Python&#xff08;Windows 操作系统&#xff09; 目录 Python 程序设计入门&#xff08;001&#xff09;—— 安装 Python&#xff08;Windows 操作系统&#xff09;一、下载 Python 安装包二、安装 Python三、测试&…...

【redis】创建集群

这里介绍的是创建redis集群的方式&#xff0c;一种是通过create-cluster配置文件创建部署在一个物理机上的伪集群&#xff0c;一种是先在不同物理机启动单体redis&#xff0c;然后通过命令行使这些redis加入集群的方式。 一&#xff0c;通过配置文件创建伪集群 进入redis源码…...

人工智能应用- 人工智能风险与伦理:01.数据安全

图: 人脸识别的滥用可能带来隐私风险&#xff0c;为不法分子提供可乘之机。特别是无处不在的摄像头&#xff0c;使我们的人脸生物信息可能暴露在风险中&#xff0c;被非法采集。人工智能的广泛应用离不开对数据的采集与分析&#xff0c;但也因此带来了数据安全方面的担忧。人工…...

MiniCPM-V 4.5 本地部署全攻略:从环境配置到图片、视频、多图推理实战

MiniCPM-V 4.5 本地部署全攻略&#xff1a;从环境配置到图片、视频、多图推理实战 在人工智能技术飞速发展的今天&#xff0c;视觉-语言多模态模型正成为研究和应用的热点。MiniCPM-V 4.5作为这一领域的最新成果&#xff0c;凭借其卓越的性能和高效的推理能力&#xff0c;为开…...

深入解读XDMA驱动:从/dev节点看透RK3588与FPGA的PCIe数据流(H2C/C2H通道详解)

深入解读XDMA驱动&#xff1a;从/dev节点看透RK3588与FPGA的PCIe数据流&#xff08;H2C/C2H通道详解&#xff09; 当你在RK3588开发板上执行ls /dev/xdma0_*命令时&#xff0c;那些神秘的字符设备节点背后隐藏着一套精密的PCIe通信体系。作为连接ARM SoC与FPGA的高速数据通道&…...

郭老师-最高级的活法:不渡无缘之人

最高级的活法 ——不干涉他人的因果“说教只会引来仇恨&#xff0c; 疼痛才是最好的老师。”&#x1f33f; 真正的慈悲&#xff0c; 不是拉人上岸&#xff0c; 而是—— 允许他沉下去&#xff0c;再自己浮起来。⚖️ 一、四大悲哀&#xff1a;强行渡人&#xff0c;反被拖下水行…...

从外卖配送到大疆无人机:经纬度距离计算在真实业务场景中的5种应用实践

经纬度计算在商业场景中的实战应用&#xff1a;从路径优化到智能决策 当你在手机上下单一份外卖&#xff0c;15分钟后热腾腾的餐食准时送达&#xff1b;当无人机精准降落在指定位置&#xff0c;完成最后一公里配送&#xff1b;当共享单车APP为你推荐最优停车点——这些场景背后…...

ALM扩展开发教程:如何为TypeScript IDE创建自定义插件

ALM扩展开发教程&#xff1a;如何为TypeScript IDE创建自定义插件 【免费下载链接】alm :rose: A :cloud: ready IDE just for TypeScript :heart: 项目地址: https://gitcode.com/gh_mirrors/al/alm ALM是一款专为TypeScript和JavaScript设计的云端IDE&#xff0c;为开…...

机器标识重置技术实现的Cursor Pro功能解锁解决方案

机器标识重置技术实现的Cursor Pro功能解锁解决方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your trial request li…...

DeepSeek-Coder-V2-Lite-Instruct社区成功案例:开发者如何用AI助手实现项目突破

DeepSeek-Coder-V2-Lite-Instruct社区成功案例&#xff1a;开发者如何用AI助手实现项目突破 【免费下载链接】DeepSeek-Coder-V2-Lite-Instruct 开源代码智能利器——DeepSeek-Coder-V2&#xff0c;性能比肩GPT4-Turbo&#xff0c;全面支持338种编程语言&#xff0c;128K超长上…...

突破限制:NCM音乐格式转换与跨平台播放完全指南

突破限制&#xff1a;NCM音乐格式转换与跨平台播放完全指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 音乐文件解密是许多音乐爱好者面临的实际需求&#xff0c;尤其是当你希望在不同设备上自由播放从网易云音乐下载的NCM格式文…...

WarcraftHelper:让经典魔兽争霸III在现代电脑上焕发新生的全能助手

WarcraftHelper&#xff1a;让经典魔兽争霸III在现代电脑上焕发新生的全能助手 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸III在宽…...