Python函数未传递,openCV

时间:2018-11-16 07:25:26

标签: python opencv image-processing machine-learning computer-vision

起初,我的名为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,avered_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时的结果

0 个答案:

没有答案