参数" line"在OpenCV函数中表示:cv2.HoughLinesP()

时间:2018-02-11 20:36:21

标签: python opencv

它写在文档中:

  

lines - 行的输出向量。每行由a表示   4元素向量(x_1,y_1,x_2,y_2),其中(x_1,y_1)和(x_2,y_2)   是每个检测到的线段的终点。

此参数的值是多少?线=?

1 个答案:

答案 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是最小行长,因为如果更改此参数,您实际上可以通过查看结果进行检查!

到目前为止,这是我所知道的。感谢您的贡献和纠正!