它写在文档中:
lines – Output vector of lines. Each line is represented by a 4-element vector (x_1, y_1, x_2, y_2) , where (x_1,y_1) and (x_2, y_2) are the ending points of each detected line segment.
此参数的值是什么?线=?
最佳答案
到目前为止,我学到了什么:
老实说,这看起来像是要在OpenCV的源代码中(或至少在文档中)要解决的问题。
首先,我们从文档中看到lines是“lines的输出 vector ”,有点循环定义,暗示它是HoughLinesP的输出。np.mat([])
或np.array([])
是此参数的有效值的事实进一步证明了这一点,而尝试list()
则会导致错误:
TypeError: Expected cv::UMat for argument 'lines'
但是,任何有效的参数选项都不会对您作为参数传递的对象产生任何影响(在上面的示例中返回“[]”)。更令人困惑的是,接受数字传递而对结果没有影响。这非常令人担忧,因为即使the official documentation也弄错了。看到他们提供的这个例子:
lines = cv2.HoughLinesP(edges,1,np.pi/180,100,minLineLength,maxLineGap)
但是,如果您检查代码中的参数顺序:image, rho, theta, threshold, lines=None, minLineLength=None, maxLineGap=None
他们显然将minLineLength
传递为lines
,这不会导致错误,因为int
值可以确定。因此,maxLineGap
是最小行长,因为如果更改此参数,您实际上可以通过查看结果进行检查!到目前为止,我已经知道了。贡献和更正表示赞赏!
关于python - 参数 “lines”在OpenCV函数中表示什么:cv2.HoughLinesP(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48736174/