json和xml转换为txt

图像检测与分割标注文件XML/JSON/TXT一键批量转换&编辑软件 解决计算机视觉领域中图像分割与检测XML/JSON/TXT标注文件相互转换与类别编辑的问题。 阅读详情

json和xml转换为txt


本文仅做学习记录使用,若侵权,留言秒删

import xml.etree.ElementTree as ET
import pickle
import os
from os import listdir, getcwd
from os.path import join
import cv2
import json

# sets = ['train', 'test', 'val']
sets = ['train', 'val']
classes = ["formula"]


def convert(size, box):
    dw = 1. / size[0]
    dh = 1. / size[1]
    x = (box[0] + box[2]) / 2.0
    y = (box[1] + box[3]) / 2.0
    w = box[2] - box[0]
    h = box[3] - box[1]
    x = x * dw
    w = w * dw
    y = y * dh
    h = h * dh
    return (x, y, w, h)


def convert_annotation(image_id, id = [], index_f="xml"):
    in_file = open('data/Annotations/%s.%s' % (image_id[:-4] , index_f))
    out_file = open('data/labels/%s.txt' % (image_id[:-4]), 'w')

    if index_f == "json":
        json_data = json.load(in_file)
        shapes = json_data["shapes"]
        w, h = json_data['imageWidth'], json_data['imageHeight']
        # if data[-2]:
        #     w = int(data['imageWidth'])
        #     h = int(data['imageHeight'])
        # else:
        #     jpg_img_patch = Image_root + image_id + '.jpg'
        #     jpg_img = cv2.imread(jpg_img_patch)
        #     h, w, _ = jpg_img.shape  # cv2读取的图片大小格式是w,h

        for obj in shapes:

            cls_id = obj["label"]
            id.append(cls_id)
            if cls_id == "19":
                print(in_file)
            xmlbox = obj['points']
            b = (float(xmlbox[0][0]), # xmin
                 float(xmlbox[0][1]), # ymin
                 float(xmlbox[1][0]), # xmax
                 float(xmlbox[1][1])) # ymax
            bb = convert((w, h), b)
            out_file.write(str(cls_id) + " " + " ".join([str(a) for a in bb]) + '\n')
    elif index_f == "xml":
        xml_data = ET.parse(in_file)
        root = xml_data.getroot()
        width = int(root.findtext("size/width"))
        height = int(root.findtext("size/height"))

        for obj in root.findall("object"):
            difficult = obj.findtext("difficult")
            class_name = obj.findtext("name")
            if class_name not in classes and int(difficult) == 1:
                continue
            cls_id = classes.index(class_name)

            bbox = (float(obj.findtext("bndbox/xmin")),
                 float(obj.findtext("bndbox/ymin")),
                 float(obj.findtext("bndbox/xmax")),
                 float(obj.findtext("bndbox/ymax")))

            bb = convert((width,height),bbox)

            out_file.write(str(cls_id) + " " + " ".join([str(a) for a in bb]) + '\n')

def xml_to_txt():
    id = []

    for image_set in sets:
        if not os.path.exists('data/labels/'):
            os.makedirs('data/labels/')
        image_ids = open('data/ImageSets/%s.txt' % image_set).read().strip().split()
        list_file = open('data/math_express_%s.txt' % (image_set), 'w')
        for image_id in image_ids:
            list_file.write('data/images//%s\n' % (image_id))  # 数据路径,可在这里修改,存放在这里并写到txt文件中

            convert_annotation(image_id, id,index_f = "xml")

        list_file.close()

def json_to_txt():
    id = []

    for image_set in sets:
        if not os.path.exists('data/labels/'):
            os.makedirs('data/labels/')
        image_ids = open('data/ImageSets/%s.txt' % image_set).read().strip().split()
        list_file = open('data/math_express_%s.txt' % (image_set), 'w')
        for image_id in image_ids:
            list_file.write('data/images//%s\n' % (image_id))  # 数据路径,可在这里修改,存放在这里并写到txt文件中

            convert_annotation(image_id, id, index_f="json")

        list_file.close()

if __name__ == "__main__":
    xml_to_txt()

文件路径构造如下:
在这里插入图片描述

数据集格式转换——json2txt、xml2txt、txt2json【复制就能用】 数据集标签格式转换——json2txt、xml2txt、txt2json 阅读详情

相关推荐

(18)目标检测算法之数据集标签格式转换:json2txt、xml2txt

目标检测算法之数据集标签格式转换:json2txt、xml2txt

yohnyang的博客 2569

数据集json格式转化为xml格式、txt格式

数据集格式转化json转xml

bullshit_123的博客 2040

windows10家庭版输入loadrunner注册码时报“License security violation. Operation isnot allowed”的解决办法

有可能出现2个错误第一个可能是第二个可能是“License security violation. Operation isnot allowed”ok,在此我在百度找了很多方法,大部分的方法都是删除注册表,但我根本就找不到这个注册表,而后又是管理中心找本地用户和组,但我依旧找不到这个玩意,然后可能是windows10家庭版本来就没有这个。再然后又以管理员身份去运行填写,好的,依旧报错,依旧未解决...

qq_30990097的博客 2557

两种方式带你玩转 json 格式转 xml 格式

你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,或者没有积分想获取项目,欢迎指教: 企鹅:869192208 文章目录前言方法一、使用 jdom 进行转换方法二、使用 dom4j 进行转换 前言 近日,在工作中遇到这么一个需求。客户希望我们能将 json 格式的字符串,转为 xml 格式返回给他们。针对这一需求,结合互联网上其他前辈的分享,摸索出两种 json 格式转 xml 格式的方法。 方法一、使用 jdom 进行转换 描述: xml转json org.jdom .

心猿码意 3万+

【GD32F407】i2c主机发送,从机中断接收

前言 现在手里负责的一个项目需要用i2c和主芯片进行通信主动发送,中断接收,这就需要支持i2c主机模式和从机模式,先查看原理图 这里我们用到了两条i2c总线进行数据的交替传输,避免在使用一条总线是发送数据和接收数据冲突 初始化i2c控制器 s32_k i2cDevInit(u8 byBusId, TI2cBus *pTI2cBus) { //PCLK = 36000000 BOOL retFlg = FALSE; int I2xSCL = pTI2cBus->byFastMode ?

Enosji的博客 6244

全网最详细单细胞保姆级分析教程(一) ---pbmc

通过观察热图,可以了解不同细胞在主成分上的分布情况,以及主成分与细胞特征之间的关系。数据归一化是数据分析中的常见步骤,旨在消除数据集中不同特征之间的量纲差异,并使它们在相同的尺度上进行比较。函数会根据指定的主成分维度计算数据点之间的距离,并找到每个数据点的邻居。函数会根据数据点之间的相似性将其分组到不同的聚类中。数据缩放是数据分析中的常见步骤,旨在将数据的特征值调整到相似的范围,以避免某些特征对分析结果的过度影响。通过可视化维度载荷,可以了解哪些特征对主成分的形成起到了重要作用,以及不同特征之间的相关性。

ZxVSaccount的博客 6702

XML 和 JSON 相互转换

xml 和 json 互转

churchill的专栏 4083

cmu15445(2024fall) project 2

project 2比p1难度要更大,代码量更大且涉及的知识更多,实现中出现的bug更多,好在是最后全部解决了。我最大的收获在于对于多线程编程的理解更深入了,实际发现解决了多个多线程相关的bug,学会了更多多线程下debug的技巧方法,也见识了更多多线程的bug情况。在之后可以更系统的学习一下多线程编程。同时学会实现B+树也是需要掌握的基础。

Jerome_Yi的博客 1548

json转换为xml(转)

写好三个文档后在main里面检查自己的文件路径,root_json_dir是json文件所在路径, root_save_xml_dir是想要将xml保存的路径,从根目录写起,在开头的两个import(from create_xml_anno import CreateAnno。from read_json_anno import ReadAnno)如果报错,则是前两个文件命名有误,需要与import位置修改一致,如果三个文件在某个文件夹里需要加上文件夹名.read_json_anno,诸如此类。

weixin_48430284的博客 1861

10、现代统计方法:趋势面分析、薄板样条与广义线性模型

本文系统介绍了空间预测建模中的三种现代统计方法:趋势面分析(TSA)、薄板样条(TPS)和广义线性模型(GLM)。详细阐述了每种方法的原理、实现步骤、参数优化与预测评估,并结合R语言代码示例展示了在实际数据中的应用。文章还提供了方法对比流程图与土壤湿度预测案例,帮助读者根据数据特征选择合适模型,提升空间预测的准确性与可靠性。

play7的博客 154

【第一章】基于Simulink的控制器开发教程——目录

摘要:本文系统介绍了基于Simulink的控制器开发方法,涵盖PID、状态反馈、模型预测(MPC)、模糊控制、自适应控制等8类主流控制器。针对每种控制器,详细阐述了其基本原理、适用场景,并通过Simulink建模与仿真测试进行实践验证。文章采用"理论+实践"的结构,从算法设计到硬件实现全流程展开,为汽车、航空航天、工业控制等领域的控制器开发提供完整解决方案,最后通过应用对比与学习总结帮助读者掌握不同控制器的核心特性和应用场景。(149字)

熟悉MATLAB/fpga/RK3588/LABVIEW/protus/单片机/dsp/Multisim 384

数据转换篇---json to xml格式

数据转换篇---json to xml格式

心惠天意 5667

074.多任务学习:在YOLO基础上同时进行分割、关键点检测

本文探讨了在YOLOv5模型中实现检测、分割和关键点多任务的技术方案。通过分层特征抽取策略(检测用深层、分割用浅深融合、关键点用中层)解决特征共享问题;采用不确定性加权方法自动平衡多任务损失;设计了支持三种标签的数据流处理方式;并分享了推理部署时的后处理技巧。实践表明,合理的多任务设计可以提升主任务性能,但需权衡标注成本和推理效率。最终方案选择在训练时引入分割作为辅助任务,推理时仅保留检测和关键点,实现了检测mAP提升2.3%的优化效果。

2603_95664987的博客 44

YOLO训练自己的数据集 | 格式转换 | JSON、TXT、XML文件的相互转换

本文介绍你在训练自己数据集时,需要将JSON、XML、TXT文件格式相互转换的常见的情况,场景丰富,可根据不同场景选用不同代码

weixin_44395210的博客 1万+

基于YOLOv8与UI界面的短视频内容审核系统实现与深度学习应用

YOLO(You Only Look Once)是一种用于实时物体检测的深度学习模型,它能在单次前向传播中同时完成物体检测和定位。YOLOv8是YOLO系列中的最新版本,相较于之前的版本,YOLOv8具有更高的检测精度和更快的推理速度,特别适合需要实时检测的应用场景。YOLOv8通过卷积神经网络(CNN)来提取图像中的特征,并通过多个卷积层来预测每个目标的位置和类别。该模型的优势在于其端到端的结构,使得在视频监控、自动驾驶、安防监控等实时应用中,能够实现快速且高效的目标检测。

YOLO 314

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

标注文件格式转换:xml和json相互转化、xml和txt相互转化、txt和json相互转化

1、xml转json #coding:utf-8 import os import glob import json import shutil import numpy as np import xml.etree.ElementTree as ET # 项目根目录下放置data/coco文件夹,里面分别有annotations、train2017、val2017三个文件夹。 # 格式转化前要将xml和图片全部放入annotation文件夹中,train2017、val2017里面为空。 # 转换后生成的

weixin_44944382的博客 3338

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

目标检测标注文件转换,xml,json,txt相互转换

目标检测标注文件转换,xml,json,txt相互转换。1. json转xml2. xml转txt3. YOLO(txt)格式转VOC(xml)格式4. voc(xml)格式转coco(json)格式 闲来无事,把自己平时的一些小工具整理一下, 1. json转xml json是coco等数据集的标注格式,要对其转换,就要先读取json中针对每张图片的数据,然后根据每张图片生成一个XML文件。 import os import json from lxml import etree as ET from x

no__matter的博客 6762

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

目标检测标注文件xml,json,txt相互转换

前言 在目标检测中我们可能会碰到很多种不同格式的标注文件,比如xml,txt,json等格式文件。这个时候就会涉及到不同格式之间的数据进行转换。笔者自己最近也在搞这些相关的数据处理,整理总结了一下。 json转xml 用labelme可以直接标注成json格式文件,是coco数据集的标注格式。针对每个json格式文件,读取标注信息,然后根据每张图片生成对应的xml格式文件。 import os import numpy as np import codecs import json from glob im

weixin_42784169的博客 2665

json转换xml、txt生成csv

import os import glob import pandas as pd import xml.etree.ElementTree as ET def xml_to_csv(path): xml_list = [] for xml_file in glob.glob(path + '/*.xml'): tree = ET.parse(xml_file...

误入歧途渐行渐远 434

数据集格式转换脚本,xml2json,txt2json,

1. 下载第三方库(用来把 XML 解析成 Python 字典,进而序列化为 JSON)2. xml2json脚本如下3. 运行示例显式指定文件夹1. txt2json脚本如下2. 显式指定文件夹2. 显式指定文件夹。

weixin_64184244的博客 433

目标检测标签转换txt2json、xml2txt

目标检测标签转换txt2json、xml2txt

weixin_43937959的博客 721

VOC(xml)标注格式转换为YOLOv5(txt)和COCO2017(json)格式

文章目录数据集介绍xml2txt标注格式介绍转换步骤xml2json标注格式介绍转换步骤References 数据集介绍 本文所使用的数据集为三种水果数据集,下载链接为:https://download.youkuaiyun.com/download/weixin_43799388/84425688 数据集文档结构如下: |——-Fruit |---Annotations |---001.xml |---002.xml ... ... |---340.xml |---images |---0

weixin_43799388的博客 6915

数据集转换xml2txt 、xml2json、json2coco

【代码】数据集转换。

weixin_46455069的博客 539

coco(json)、yolo(txt)、voc(xml)标注格式的相互转换

一般都是用labeleme进行标注 标注格式都是json。

TracyGC的博客 1640

VOC、COCO、YOLOv3 的 .json .xml .txt 标签文件内容,格式转换

文章目录数据集格式的理解与使用1. 数据集中标签文件的内容1.1. Tinghua100K 的数据集格式(.json)1.2. VOC的数据集格式(.xml)1.3. COCO数据集的格式(.json)1.3. YOLO需要的数据集格式(.txt)2. 数据集的下载和文件结构2.1. VOC数据集(标签是 .xml格式)2.2. COCO 数据集(标签是 .json格式)3. 不同格式之间的转换3...

轮子去哪儿了 1万+

XML和JSON格式转换成txt

【代码】XML和JSON格式转换成txt。

今天好像忘写了 394
上一篇: python matplotlib.Rectangle在一幅图片里作出一个或多个矩形框
下一篇: 图像增强系列操作
humeme
博客等级 码龄9年 25粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值