yolov3检测结果txt文件转存det.txt(用于目标跟踪)
文件 检测 结果 目标 用于 跟踪 txt yolov3
2023-09-27 14:20:15 时间
代码思路
代码说明
file_name() 函数获取txt文件路径信息
这里使用的图片大小是 960x600 的尺寸
txt2det() 函数把txt载入矩阵,把(x,y,w,h)信息转化成(x1,y1,x2,y2)格式,并转成跟踪txt文件
第一张图片检测结果截图(相对坐标)
det.txt文件截图
完整代码
from PIL import Image
import os
import glob
import numpy as np
#读取图片,修改图片,另存图片
def convertjpg(jpgfile,outdir,img_sum=0):
img=Image.open(jpgfile)#提取目录下所有图片
try:
img_sum=str('%08d'%img_sum)#图片保存成00000001格式
img.save(os.path.join(outdir)+img_sum+'.jpg')#保存到另一目录
except Exception as e:
print(e)
#读取文件名
def file_name(file_dir):
L=[]#保存文件名
img_num=0#计算图片总数
for root, dirs, files in os.walk(file_dir):
img_num=img_num+len(files)
one=os.path.basename(str(root))#获取路径最后的/或者\后的文件名
L.append(one)
num=len(L)-1 #获取路径下文件个数
print('%s路径下有%d个文件'%(L[0],num))
return L ,num ,img_num
def txt2det(txt_dir,out_dir,txt_num):
data = np.loadtxt(txt_dir,dtype='float')
for k in data[:,0]:
print(k)
print(len(data[:,1]))#第2列
data[:,0]=txt_num
data[:,1]=(data[:,1]-0.5*data[:,3])*960#左上角坐标x
data[:,2]=(data[:,2]-0.5*data[:,4])*600#左上角坐标y
data[:,3]=(data[:,1]+data[:,3]*960)#右下角坐标x
data[:,4]=(data[:,2]+data[:,4]*600)#右下角坐标y
a=np.linspace(-1,-1,len(data))
data=np.insert(data,1,a,axis=1)#行矩阵插入
a=a.reshape((len(a),1))
data=np.concatenate((data,a,a,a),axis = 1)#补充-1
print(data,'\n')
np.savetxt(out_dir,data,fmt="%d,%d,%.3f,%.3f,%.3f,%.3f,%.3f,%d,%d,%d",delimiter="\n")
def main():
i=0
for txtfile in glob.glob('C:/Users/Chengguo/Desktop/py_study/xcg_det/to_det/'+'*.txt'):
i=i+1
txt2det(txtfile,'C:/Users/Chengguo/Desktop/py_study/xcg_det/all_det/'+str(i)+'.txt',i)
print('det.txt生成完成')
det=open('C:/Users/Chengguo/Desktop/py_study/xcg_det/det/det.txt','w')
for txts in range(200):
print(txts)
one_det=open('C:/Users/Chengguo/Desktop/py_study/xcg_det/all_det/'+str(txts+1)+'.txt').read()
det.write(one_det)
det.close()
if __name__ == '__main__':
main()
相关文章
- java 逐行读取csv文件存入mysql数据库
- 对 Visual Studio 中的Resharper禁用对某种文件的检测
- 28Linux - 文件管理(查看命令位置:which)
- 22Linux - 文件管理(拷贝文件:cp)
- win10修改本地host文件,用以增加自定义本地访问域名127.0.0.1
- 通过jQuery Ajax使用FormData对象上传文件
- 如何用正则匹配文本中的文件路径?
- 2、FileOutputStream--->文件输出流(向文件写入数据)
- cmd实现批量文件的base64加密并双击加密文件后正常运行
- java传输文件的简单方法
- Java学习-018-EXCEL 文件写入实例源代码
- netty系列之:搭建自己的下载文件服务器
- 浅析JavaScript如何检测文件的类型:区分文件类型的本质、关于魔数的理解、input accept文件检测存在的问题、如何检测修改后缀名后的文件类型、推荐一个文件检测JS库-file-type库及其检测原理
- Nginx配置实现下载文件