Функция Python не прошла, openCV - PullRequest
0 голосов
/ 16 ноября 2018

Сначала моя функция display_lines передала параметры строки из моего массива HoughLinesP, а затем я попытался создать среднюю линию, чтобы сгладить линии, но она не передавалась моей функции display_lines, я попытался распечатать ее внутрифункция показывает только массив HoughLinesP вместо моей средней линии

это функция для make_coordinates

def make_coordinates(image, line_parameters):
    slope, intercept = line_parameters
    y1 = image.shape[0] 
    y2 = int(y1*(3/5)) 
    x1 = int((y1 - intercept)/slope)
    x2 = int((y2 - intercept)/slope)
    return np.array([x1, y1, x2, y2])

это функция для нахождения среднего значения строки

def average_slope_intercept(image, lines):
    left_fit = [] 
    right_fit = []
    for line in lines:  
        x1, y1, x2, y2 = line.reshape(4)
        parameters = np.polyfit((x1, x2), (y1, y2), 1)
        slope = parameters[0]
        intercept = parameters[1]
        if slope < 0:
            left_fit.append((slope, intercept))
        else:
            right_fit.append((slope, intercept))
    left_fit_average = np.average(left_fit, axis=0)
    right_fit_average = np.average(right_fit, axis=0)
    left_line = make_coordinates(image, left_fit_average)
    right_line = make_coordinates(image, right_fit_average)
    return np.array([left_line, right_line])

это HoughLineP, averaged_line и line_image

lines = cv2.HoughLinesP(cropped_image, 2, np.pi/180, 100, np.array([]), minLineLength=40, maxLineGap=5)
averaged_lines = average_slope_intercept(lane_image, lines)
line_image = display_lines(lane_image, averaged_lines)

Это результат, когда я печатаю строки и averaged_lines

...