You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 车胎横向分界线
k = 0.62849534
b = 21.8122503
"""
读取yolo网络识别路沿的坐标数据,筛选出目标区域的数据点,并将路沿上下侧数据分离
参数保存数据的txt文件路径
返回值在目标区域内的下侧数据点坐标x_bot、y_bot上侧数据点坐标x_top,y_top
"""
def get_data(txt_name):
with open(txt_name, 'r', encoding='utf-8') as f:
lines = f.readlines()
data = []
for i, line in enumerate(lines, 1):
data.append(line.split())
x_bot = []
y_bot = []
x_top = []
y_top = []
k_num = 0
for i in range(len(data)):
data[i][1] = 960 - int(data[i][1])
for i in range(len(data)):
if k * int(data[i][0]) + b - int(data[i][1]) < 0:
continue
if i > 1:
if (int(data[i][0]) - int(data[i-1][0]))*(int(data[i+2][0]) - int(data[i][0]))<0:
k_num = i
break;
for i in range(len(data)):
if k * int(data[i][0]) + b - int(data[i][1]) < 0:
continue
if i < k_num:
x_bot.append(int(data[i][0]))
y_bot.append(int(data[i][1]))
else:
x_top.append(int(data[i][0]))
y_top.append(int(data[i][1]))
return x_bot, y_bot, x_top, y_top