xml格式标签转yolo格式的txt格式标签

labelImg生成的xml转换为yolo指定格式的txt文件,转换脚本(python):

import glob
import xml.etree.ElementTree as ET


#类名
class_names=['bottle','paper_box','foam']
#选择输入路径
#path = 'D:/database/629_train/train_images/'   
path = 'D:/database/629_train/val_images/'
#转换一个xml文件为txt
def single_xml_to_txt(xml_file):
    tree = ET.parse(xml_file)
    root = tree.getroot()

    #保存txt文件路径
    txt_file = xml_file.split('.')[0] + '.txt'
    with open(txt_file, 'w') as txt_file:
        for member in root.findall('object'):
	        #从xml获取图像的宽和高
            picture_width = int(root.find('size')[0].text)
            picture_height = int(root.find('size')[1].text)
            class_name = member[0].text

            #类名对应的index
            class_num = class_names.index(class_name)
            box_x_min = int(member[4][0].text)  # 左上角横坐标
            box_y_min = int(member[4][1].text)  # 左上角纵坐标
            box_x_max = int(member[4][2].text)  # 右下角横坐标
            box_y_max = int(member[4][3].text)  # 右下角纵坐标

            # 转成相对位置和宽高(所有值处于0~1之间)
            x_center = (box_x_min + box_x_max) / (2 * picture_width)
            y_center = (box_y_min + box_y_max) / (2 * picture_height)
            width = (box_x_max - box_x_min) / picture_width
            height = (box_y_max - box_y_min) / picture_height
            print(class_num, x_center, y_center, width, height)
            txt_file.write(str(class_num) + ' ' + str(x_center) + ' ' + str(y_center) + ' ' + str(width) + ' ' + str(
                height) + '\n')



#  转换文件夹下的所有xml文件为txt
def dir_xml_to_txt(path):
    for xml_file in glob.glob(path + '*.xml'):
        print(xml_file)
        single_xml_to_txt(xml_file)


dir_xml_to_txt(path)

课程设计概述: 本课程设计旨在让学生能够熟悉移动应用开发的基本原理和技术,掌握Android平台下的应用开发技术,了解应用开发的生命周期、UI设计、数据存储、网络通信等方面的知识,通过实践项目的开发,提高学生的应用开发能力和解决问题的能力。 课程设计内容: 本课程设计采用每日一文app为例,通过实践让学生掌握以下技术: 1. Android基础知识:Android平台的体系结构、应用架构、应用生命周期、UI设计等基础知识。 2. 数据存储:SQLite数据库的使用、SharedPreferences的使用等。 3. 网络通信:HTTP协议的使用、Volley库的使用等。 4. 多线程编程:异步任务的使用、Handler的使用等。 5. 第三方库的使用:Glide图片加载库的使用、ButterKnife注解库的使用等。 6. 项目实践:通过每日一文app的实践,让学生掌握应用开发的实际应用场景和解决问题的能力。 课程设计目标: 通过本课程设计,学生应该能够: 1. 掌握Android平台下应用开发的基础知识和技能。 2. 熟练运用Android SDK和第三方库进行应用开发。 3. 能够独立完成一个简单的Android应用的设计和开发。 4. 具备分析和解决应用开发中遇到的问题的能力。 5. 培养学生的团队协作和沟通能力。 6. 提高学生的创新意识和实际问题解决能力。 课程设计教学方法: 本课程设计采用“理论教学 + 实践操作”的教学方法。理论教学主要讲解Android应用开发的基本原理和技术,实践操作则通过每日一文app的开发实践,让学生深入了解应用开发的实际应用场景和解决问题的能力。 同时,本课程设计还将采用小组协作的教学方法,让学生在团队中相互协作、交流,提高团队协作和沟通能力。 评价方法: 本课程设计的评价方式采用实践考核和项目报告两种方式。实践考核主要考察学生的应用开发能力和解决问题的能力,项目报告则主要考察学生对应用开发技术的理解和应用能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值