ValueError: слишком много значений для распаковки - OpenCV Python HoughLines - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь получить rho и theta из строки, обнаруженной на изображении, благодаря HoughLine из OpenCV.

lines = cv.HoughLinesP(edges, 1, np.pi/180, hThreshold, maxLineGap=lineGap)
if lines is not None:
    for line in lines:
       rho, theta = line[0]

Но я получаю эту ошибку для последней строки.

ValueError: слишком много значений для распаковки

Знаете ли вы, как решить эту проблему?Или другой способ получения значений rho и theta?

PS: я установил opencv-python с pip3, установил opencv-python --user

1 Ответ

0 голосов
/ 05 июля 2019

line[0] в приведенном выше коде список, содержащий 4 значения.Вот почему вы получаете выше ошибки.То, что вы делаете, пытается обнаружить строки, используя Probabilistic Hough lines, то есть

lines = cv2.HoughLinesP(binarized image, ro accuracy, theta accurancy, threshold, minimum line length, max line gap)

правильный код:

lines = cv.HoughLinesP(edges, 1, np.pi/180, hThreshold, maxLineGap=lineGap)
for line in lines:
    x1, y1, x2, y2 = line[0]

Но, что вы хотите сделатьобнаружение линии с использованием Hough lines.Итак, измените код с lines = cv.HoughLinesP(edges, 1, np.pi/180, hThreshold, maxLineGap=lineGap) на

lines = cv2.HoughLines(edges, 1, np.pi / 180, 220)
for line in lines:
    rho, theta = line[0]
    print(rho, theta)
...