import pandas as pd
import os
#line={filename,width,height,class,xmin,ymin,xmax,ymax}
Airplane_class = ['E2','B52','Mirage2000','F4','F14','Tornado','J20','JAS39','B2']
def getx_c(width,xmin,xmax):
x_c = (xmin+xmax)/2;
x_c = '%.16f'%(x_c/width)
return x_c
def gety_c(height,ymin,ymax):
y_c = (ymin+ymax)/2
y_c = '%.16f'%(y_c/height)
return y_c
def getbbox_width(width,xmin,xmax):
bbox_width = xmax - xmin
bbox_width = '%.16f'%(bbox_width/width)
return bbox_width
def getbbox_height(height,ymin,ymax):
bbox_height = ymax - ymin
bbox_height = '%.16f'%(bbox_height/height)
return bbox_height
filename = os.listdir(r'F:/dataset/train_csv')
for file in filename:
if file.endswith('.csv'):
file_csv = 'F:/dataset/train_csv/'+file
print(file_csv)
file_txt = file[:file.index('.')]
file_txt = 'F:/dataset/labels/'+file_txt +'.txt'
with open(file_txt,'w') as f:
data = pd.read_csv(file_csv)
for line in data.values:
#print(type(line[1]))
x_c = getx_c(line[1],line[4],line[6])
y_c = getx_c(line[2],line[5],line[7])
bbox_width = getbbox_width(line[1],line[4],line[6])
bbox_height = getbbox_height(line[2],line[5],line[7])
Airplane_index = Airplane_class.index(line[3])
#print(Airplane_class + ' ' + x_c + ' ' + y_c + ' ' + bbox_width + ' ' + bbox_height)
f.write(str(Airplane_index) + ' ' + str(x_c) + ' ' + str(y_c) + ' ' +str(bbox_width) + ' ' + str(bbox_height))
f.write('\n')
将csv文件转成txt方便yolo数据集训练
最新推荐文章于 2024-06-13 17:11:45 发布