728x90
반응형
Json포맷으로 된 bbox 값이 중구난방으로 나열된 경우, 내가 원하는 순서대로 정렬하기 위한 코드
TL(Top Left) -> TR(Top Right) -> BR(Bottom Right) -> BL(Bottom Left) 순서
def coord_adjust(coord):
"""
coord : np.array
[[xA,yA],
[xB,yB],
[xC,yC],
[xD,yD]]
"""
distance = []
for idx, c in enumerate(coord):
x = c[0]
y = c[1]
zero_distance = x+y
distance.append([idx,zero_distance])
distance = sorted(distance, key=itemgetter(1))
left_top = coord[distance[0][0]]
right_bottom = coord[distance[-1][0]]
box1 = coord[distance[1][0]]
box2 = coord[distance[2][0]]
if box1[0] > box2[0]:
left_bottom = box2
right_top = box1
else:
left_bottom=box1
right_top=box2
x1,y1 = left_top
x2,y2 = right_top
x3,y3 = right_bottom
x4,y4 = left_bottom
output_coord = [[x1,y1],
[x2,y2],
[x3,y3],
[x4,y4]]
return output_coord
728x90
반응형
'사소한 Tip . 오류 해결법 > python' 카테고리의 다른 글
python 정규표현식 date type, 특정 문자로 시작 ,끝나는 경우 (0) | 2022.05.25 |
---|---|
[python] dictionary key-value 간단하게 바꾸기 (0) | 2022.05.11 |
[python] list 중복 제거(순서 유지(OrderedDict, Dict), 순서 무관(set)) (0) | 2022.03.30 |
[python]특정 경로 내 파일 존재 유무 확인 (0) | 2022.03.16 |
[python] 인터넷 크롤링(지마켓 상품명, 가격) / Python Crawling product name, price from online shopping mall (0) | 2022.03.15 |