它写在文档中:
lines - 行的输出向量。每行由a表示 4元素向量(x_1,y_1,x_2,y_2),其中(x_1,y_1)和(x_2,y_2) 是每个检测到的线段的终点。
此参数的值是多少?线=?
答案 0 :(得分:0)
到目前为止我学到的东西:
老实说,这看起来像是要在OpenCV的源代码中(至少在文档中)要修复的东西。
首先,我们从文档中看到lines是“ lines的输出向量”,有点循环定义,暗示它是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
是最小行长,因为如果更改此参数,您实际上可以通过查看结果进行检查!
到目前为止,这是我所知道的。感谢您的贡献和纠正!