python - 参数 “lines”在OpenCV函数中表示什么:cv2.HoughLinesP()

标签 python opencv

它写在文档中:

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/

相关文章:

c++ - 校准期间 OpencV 错误

linux - 设置 HLS 分段时间

python - 在变量声明中使用冒号

c++ - 在 Visual Studio 2013 上使用 QT

c++ - 键盘输入以保存从opencv中的视频流中检测到的图像

python - 使用 scrapy 进行网页抓取。如何为数字定义 xpath 通配符?

c++ - 从 MATLAB 到 C++ : equivalent of bwmorph with option 'remove'

python - 十六进制正则表达式字符串匹配不起作用(python)

Python 正则表达式重叠

python - 如何在Python中找到离零最远的值