首页 > 其他分享 >csv文件转换yolo格式

csv文件转换yolo格式

时间:2024-03-27 14:32:29浏览次数:21  
标签:yolo file output 格式 path csv row

CSV转yolo

Python代码

import os
import csv

def convert_csv_to_yolo(csv_file, output_dir):
    with open(csv_file, 'r') as file:
        reader = csv.DictReader(file)
        for row in reader:
            filename = row['filename']
            width = int(row['width'])
            height = int(row['height'])
            class_label = row['class']
            xmin = int(row['xmin'])
            ymin = int(row['ymin'])
            xmax = int(row['xmax'])
            ymax = int(row['ymax'])

            # 计算YOLO坐标
            x_center = (xmin + xmax) / (2 * width)
            y_center = (ymin + ymax) / (2 * height)
            bbox_width = (xmax - xmin) / width
            bbox_height = (ymax - ymin) / height

            # 构建YOLO格式字符串
            yolo_line = f"{class_label} {x_center} {y_center} {bbox_width} {bbox_height}\n"

            # 构建输出文件路径
            output_file = os.path.join(output_dir, filename + '.txt')

            # 将YOLO格式字符串写入文件
            with open(output_file, 'a') as output:
                output.write(yolo_line)

def batch_convert_csv_to_yolo(csv_folder, output_dir):
    csv_files = [f for f in os.listdir(csv_folder) if f.endswith('.csv')]
    for csv_file in csv_files:
        csv_file_path = os.path.join(csv_folder, csv_file)
        print(f"Converting {csv_file} to YOLO format:")
        convert_csv_to_yolo(csv_file_path, output_dir)
        print()

# 指定包含CSV文件的文件夹路径
csv_folder_path = ''

# 指定输出文件夹路径
output_folder_path = ''

# 执行批量转换
batch_convert_csv_to_yolo(csv_folder_path, output_folder_path)

示例图

转换前

csv文件

转换后

txt(yolo格式)

标签:yolo,file,output,格式,path,csv,row
From: https://blog.csdn.net/weixin_46076409/article/details/137075879

相关文章

  • 数字格式化为千分位
    数字格式化为千分位.md数字格式化为区域格式实现//方式1functionnumFormat1(num){if(isNaN(num)){return'0'}returnparseFloat(num).toLocaleString()//核心代码}//方式2functionnumFormat2(num){if(isNaN(num)){return'0'}......
  • 最详细爬虫零基础教程11——html格式提取之xpath
    文章目录一、html和xml二、xpath获取节点属性三、xpath语法四、案例展示总结一、html和xmllxml是一款高性能的PythonHTML/XML解析器,我们可以利用XPath,来快速的定位特定元素以及获取节点信息。区别:1.xml被设计为传输和存储数据,其焦点是数据的内容2.html是显示......
  • 最详细爬虫零基础教程10——json格式提取之jsonpath
    文章目录一、json数据解析二、案例演示1.解析获得数据2.简化代码3.豆瓣json数据解析总结一、json数据解析用来解析多层嵌套的json数据;JsonPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript,Python,PHP和Java。语......
  • 爬虫(m3u8格式视频文件)
    点击查看代码importreimportrequestsfromlxmlimportetreeimportasyncioimportaiohttpimportaiofilesimportosfromCrypto.CipherimportAES#获取第一层m3u8文件的url并下载deffirst_m3u8_url(url):resp=requests.get(url,verify=False)html......
  • 非极大值抑制篇 | YOLOv8更换NMS之DIoU-NMS / CIoU-NMS / EIoU-NMS / GIoU-NMS / GIoU
    前言:Hello大家好,我是小哥谈。YOLOv8中的NMS指非极大值抑制(Non-MaximumSuppression),它是一种用于目标检测算法中的后处理技术。在检测到多个重叠的边界框时,NMS可以帮助选择最佳的边界框。NMS的工作原理是首先根据预测边界框的置信度对它们进行排序,然后从置信度最高的边界框开......
  • 上传图片前端使用base64数据格式展示,后端数据库存储二进制文件
    添加时上传图片upload.render({elem:'#docImg',url:Feng.ctxPath+'/doctor/upload'//改成您自己的上传接口,before:function(obj){//预读本地文件示例,不支持ie8obj.preview(function(index,file,result){......
  • Data.olllo解密:秒数转换为日期格式的神奇技能!
    引言:时间是数据世界中不可或缺的一环,而将秒数转换为易读的日期格式往往是数据处理中的一大挑战。但是,有了Data.olllo,这一任务将变得异常简单!功能介绍:Data.olllo的秒数转换功能可以让您轻松地将秒数格式的时间转换为标准的年月日时分秒的日期格式。这个功能不仅能够提高数据......
  • YOLOv5改进系列:主干ConvNeXTV2结构助力涨点
    一、论文理论论文地址:ConvNeXtV2:Co-designingandScalingConvNetswithMaskedAutoencoders1.理论思想ConvNeXtV2 在 ConvNeXt 的基础上增加了两个创新点(一个 framework 和一个 technique):全卷积掩码自编码器(fullyconvolutionalmaskedautoencoder,FCMAE)和......
  • niushop模型查询格式 以DB方式查询
     案例代码 逻辑层if(!empty($title)){$condition[]=['title','like','%'.$title.'%'];}$condition[]=['delete','=','0'];......
  • 前端实现导出table表格为Excel、CSV
    js实现导出table表格为Exceljquery.table2excel.js要基于jquery的基础上才能使用,是一款专门导出excel的插件jquery-3.3.1.js下载http://www.jq22.com/jquery-info122代码如下:<!DOCTYPEhtml><html><head><metacharset="utf-8"><metaname="viewpor......