import os
#排序将四个按照左上,右上,右下,左下的方式排序,其中leftup和left_up的区别是,其中一个为2个坐标的标签,另外一个是从四个标签里面提出来的
def sort_number():
# a='00205459770115-90_85-352&516_448&547-444&547_368&549_364&517_440&515-0_0_22_10_26_29_24-128-7.jpg'
p = "./data/widerface/train/image/"
path = os.listdir(p)
with open('label.txt', 'a',encoding='utf-8') as f:
for k in range(len(path)):
iname = path[k].rsplit('/', 1)[-1].rsplit('.', 1)[0].split('-')
[leftdown, rightup] = [[int(eel) for eel in el.split('&')] for el in iname[2].split('_')]
leftUp=[leftdown[0],rightup[1]]
rightDown=[rightup[0],leftdown[1]]
data=[[int(eel) for eel in el.split('&')] for el in iname[3].split('_')]
# print(data)
for i in range(len(data)-1):
for j in range(len(data)-1-i):
if data[j][0]>data[j+1][0]:
e=data[j+1]
data[j+1] =data[j]
data[j]=e
if data[0][1]>data[1][1]:
left_up = data[0]
left_down = data[1]
else:
left_up=data[1]
left_down = data[0]
if data[2][1]>data[3][1]:
right_up = data[2]
right_down = data[3]
else:
right_up=data[3]
right_down = data[2]
x,y=leftdown[0],leftdown[1]
x1,y1=left_up
x2,y2=right_up
x3,y3=right_down
x4,y4=left_down
w,h=rightDown[0]-leftUp[0],leftUp[1]-rightDown[1]
second=str(str(x)+' '+str(y)+' '+str(w)+' '+str(h)+' '+str(x1)+' '+str(y1)+' '+'0.0'+' '+str(x2)+
' '+str(y2)+' '+'0.0'+' '+str(x3)+' '+str(y3)+' '+'0.0'+' '+str(x4)+' '+str(y4)+' '+'0.0')
s=str('#'+p+path[k]+'\n'+second+'\n')
f.write(s)
sort_number()