ValueError:太多值要解压缩 - OpenCV Python HoughLines



我正在尝试从图像中检测到的行中获取rho和theta,这要归功于OpenCV的HoughLine。

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

但是我在最后一行收到此错误。

值错误:要解压缩的值太多

您知道如何解决此问题吗?还是另一种获取 rho 和 theta 值的方法?

PS:我用pip3安装了opencv-python --user

上面代码中的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)

最新更新