Python读取、矩阵操作、保存.txt文件

针对目标检测标注文件,中间矩阵操作的目的是将txt标签格式转换成yolo标签格式,请忽略。


设定路径地址,在前面添加r,避免转义

glob的glob方法可以提取指定路径的所有文件路径成列表。之后针对每一个txt进行操作。

利用切片操作[:]获取文件名。

numpy的savetxt方法保存txt文件,fmt可以设定保存的数据类型

具体代码及详细注释如下:

import numpy
import glob
import os

readpath=r'C:\Users\deepw\Desktop\data2yolo\AnnotationFiles'
savepath=r'C:\Users\deepw\Desktop\data2yolo\new'
#读取和存储文件的路径

files=glob.glob(r'%s\*.txt' %readpath)  #获取所有txt文件
for path in files:  #对每个txt文件
    filename=os.path.basename(path)[:-4]  #获取文件名
    orig=numpy.loadtxt(path)  #读取文件
    for line in orig:  #txt文件数据的矩阵操作(行列式操作)
        mid=line[4]
        for i in range(4):
            line[4-i]=line[3-i]
        line[0]=mid
        line[1]=max(line[1]-5,1)
        line[2]=max(line[2]-5,1)
        line[3]=min(line[3]+10,1280)
        line[4]=min(line[4]+10,960)
        line[1]=(line[1]+(line[3])/2)/1280
        line[2]=(line[2]+(line[4])/2)/960
        line[3]=(line[3])/1280
        line[4]=(line[4])/960
    new=orig
    numpy.savetxt(r'%s\%s.txt' %(savepath, filename), new, fmt='%d %0.6f %0.6f %0.6f %0.6f')  #另存为新的txt文件

 

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值