我正在尝试从图像中检测到的行中获取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)