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

4 months ago
# 车胎横向分界线
k = 0.62849534
b = 21.8122503
"""
读取yolo网络识别路沿的坐标数据,筛选出目标区域的数据点并将路沿上下侧数据分离
参数保存数据的txt文件路径
返回值在目标区域内的下侧数据点坐标x_boty_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