|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 从所有车道线中确定位于最左侧或最右侧的车道线簇,并将各车道线对应的序号存储在laneSN中 |
|
|
# 从所有车道线中确定位于最左侧或最右侧的车道线簇,并将各车道线对应的序号存储在laneSN中 |
|
|
def findLanes(allLaneContent, laneXCOORSort, laneSN, pars): |
|
|
def findLanes(allLaneContent, laneXCOORSort, laneSN, pars): |
|
|
for i in range(len(laneXCOORSort)): |
|
|
|
|
|
|
|
|
for i in range(len(laneXCOORSort)-1 ): |
|
|
|
|
|
|
|
|
|
|
|
#print('###line51:',i, laneXCOORSort,'\n',allLaneContent) |
|
|
if (allLaneContent[laneXCOORSort[i][1]][4][0] > allLaneContent[laneXCOORSort[i + 1][1]][4][0] and allLaneContent[laneXCOORSort[i][1]][4][1] < allLaneContent[laneXCOORSort[i + 1][1]][4][1]) or (allLaneContent[laneXCOORSort[i][1]][4][0] < allLaneContent[laneXCOORSort[i + 1][1]][4][0] and allLaneContent[laneXCOORSort[i][1]][4][1] > allLaneContent[laneXCOORSort[i + 1][1]][4][1]): # allLaneContent[0][4][0]:中心点x坐标。 车辆的相对位置不同,计算角度方法也不同。这种情况对应右上角和左下角的车道线,计算角度 |
|
|
if (allLaneContent[laneXCOORSort[i][1]][4][0] > allLaneContent[laneXCOORSort[i + 1][1]][4][0] and allLaneContent[laneXCOORSort[i][1]][4][1] < allLaneContent[laneXCOORSort[i + 1][1]][4][1]) or (allLaneContent[laneXCOORSort[i][1]][4][0] < allLaneContent[laneXCOORSort[i + 1][1]][4][0] and allLaneContent[laneXCOORSort[i][1]][4][1] > allLaneContent[laneXCOORSort[i + 1][1]][4][1]): # allLaneContent[0][4][0]:中心点x坐标。 车辆的相对位置不同,计算角度方法也不同。这种情况对应右上角和左下角的车道线,计算角度 |
|
|
radian1 = math.atan2(abs(allLaneContent[laneXCOORSort[i + 1][1]][4][1] - allLaneContent[laneXCOORSort[i][1]][4][1]), abs(allLaneContent[laneXCOORSort[i + 1][1]][4][0] - allLaneContent[laneXCOORSort[i][1]][4][0])) |
|
|
radian1 = math.atan2(abs(allLaneContent[laneXCOORSort[i + 1][1]][4][1] - allLaneContent[laneXCOORSort[i][1]][4][1]), abs(allLaneContent[laneXCOORSort[i + 1][1]][4][0] - allLaneContent[laneXCOORSort[i][1]][4][0])) |
|
|
lanesCenterAngle1 = 180 - int(radian1 * 180 / math.pi) |
|
|
lanesCenterAngle1 = 180 - int(radian1 * 180 / math.pi) |