ValueError: too many values to unpack - OpenCV Python HoughLines
ValueError: too many values to unpack - OpenCV Python HoughLines
感谢 OpenCV 的 HoughLine,我正在尝试从图像中检测到的直线中获取 rho 和 theta。
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: too many values to unpack
你知道如何解决这个问题吗?或者另一种获取 rho 和 theta 值的方法?
PS: 我用 pip3 install opencv-python --user
安装了 opencv-python
上面代码中的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)
感谢 OpenCV 的 HoughLine,我正在尝试从图像中检测到的直线中获取 rho 和 theta。
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: too many values to unpack
你知道如何解决这个问题吗?或者另一种获取 rho 和 theta 值的方法?
PS: 我用 pip3 install opencv-python --user
安装了 opencv-pythonline[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)