только массивы размера 1 могут быть преобразованы в Python scalars-OpenCV - PullRequest
0 голосов
/ 16 апреля 2020

Я получаю сообщение об ошибке, пытаясь преобразовать (i sh ??) изображение. Основная цель этого алгоритма - найти полосы на заданной дороге. Но я получаю сообщение об ошибке, в котором говорится, что только массивы размера 1 могут быть преобразованы в Python скаляры на OpenCV. Вот мой код:

enter code here 
import pandas as pd   
import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv

def canny(image):
gray=cv.cvtColor(lane_image,cv.COLOR_RGB2GRAY)
blur=cv.GaussianBlur(gray,(5,5),0)
canny_image=cv.Canny(blur,50,150)
return canny_image

def display_lines(image,lines):
    line_image=np.zeros_like(image)
    if lines is not None:
        for line in lines:
            x1,y1,x2,y2=line.reshape(4)
            cv.line(line_image,(x1,y1),(x2,y2),(255,0,0),10)
    return line_image 

def region_of_interest(image):
    height=image.shape[0]
    polygons=np.array([[(200,height),(735,height),(445,250)]])
    mask=np.zeros_like(image)
    cv.fillPoly(mask,polygons,255)
    masked_image=cv.bitwise_and(image, mask)
    return masked_image



image=cv.imread("D:/large_thumbnail.jpg")

lane_image=np.copy(image)

canny=canny(lane_image)
cropped_image=region_of_interest(canny)
lines=cv.HoughLinesP(cropped_image,2,np.pi/180,100,np.array([]),minLineLength=40,maxLineGap=5)

line_im=display_lines(lane_image,lines)

combo_add=cv.addWeighted(lane_image,0,8,line_im,1,1)---> the error line 

cv.imshow("",combo_add)

1 Ответ

0 голосов
/ 16 апреля 2020

cv.addWeighted ожидает, что третий аргумент будет src2. Вы передали line_im в качестве четвертого аргумента. Ожидается, что четвертый аргумент будет скалярным значением, тогда как вы передаете numpy.ndarray. Измените ваш звонок, как показано ниже:

combo_add=cv.addWeighted(lane_image,8,line_im,1,1) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...