ValueError:值太多,无法解压缩OpenCV Python HoughLines

2024-10-01 19:22:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个图像中检测到的线得到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]

但我在最后一行得到了这个错误。你知道吗

ValueError: too many values to unpack

你知道怎么解决这个问题吗?或者另一种得到ρ和θ值的方法?你知道吗

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


Tags: 图像nplinepiopencvcvlinesrho
1条回答
网友
1楼 · 发布于 2024-10-01 19:22:06

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

相关问题 更多 >

    热门问题