Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 线段检测器与概率霍夫变换_Opencv_Image Processing_Computer Vision_Hough Transform - Fatal编程技术网

Opencv 线段检测器与概率霍夫变换

Opencv 线段检测器与概率霍夫变换,opencv,image-processing,computer-vision,hough-transform,Opencv,Image Processing,Computer Vision,Hough Transform,在OpenCV中,有两种检测线的方法,它们以端点向量的形式给出类似的结果-和。(不考虑标准Hough变换,因为给定的输出是方程式,而不是直线端点。) 我还没有找到这两种测线方法的比较和对比,以及它们的优缺点。因此,这两种功能之间的区别是什么?使用一种方法与使用另一种方法相比有什么特别的好处吗 此外,是否有其他鲜为人知的测线方法(如LSD)在某些用例中可能是有利的?测线段检测器(LSD) 将灰度图像作为输入 设计为无需任何参数调整即可工作 以线性时间运行 给出亚像素级的精确结果 用于无参数边缘检

在OpenCV中,有两种检测线的方法,它们以端点向量的形式给出类似的结果-和。(不考虑标准Hough变换,因为给定的输出是方程式,而不是直线端点。)

我还没有找到这两种测线方法的比较和对比,以及它们的优缺点。因此,这两种功能之间的区别是什么?使用一种方法与使用另一种方法相比有什么特别的好处吗


此外,是否有其他鲜为人知的测线方法(如LSD)在某些用例中可能是有利的?

测线段检测器(LSD)

  • 将灰度图像作为输入
  • 设计为无需任何参数调整即可工作
  • 以线性时间运行
  • 给出亚像素级的精确结果
  • 用于无参数边缘检测
  • 实施示例:
(渐进式)概率霍夫变换

  • 将二值图像作为输入
  • 具有多个调谐参数;距离分辨率(rho)、角度分辨率(θ)、累加器阈值参数(仅返回具有足够票数的参数)、最小线长度和最大线间距
  • 时间性能取决于参数(但优于标准Hough变换)
  • 由于随机性,多次运行可能会产生不同的结果
  • 用于更具体的测线;参数允许调整,并可选择组合线段(通过最大线间距参数)以返回单个较长的线
  • OpenCV实现是(感谢)
其他算法

  • :使用边缘检测器的线性时间线段检测器。据我所知,没有OpenCV实现

(多亏米卡指出了输入和潜在用途的差异)LSD使用灰度图像作为输入,white PHough使用二值(黑白)图像。所以他们是完全不同的。我喜欢LSD,因为它非常无参数,更像是边缘检测和PHough,可以找到一条更长的线。@Mika,你可以把它作为答案。我想这就足够了。无论如何谢谢你@米卡同意了,如果你想详细说明这个问题的答案,那就太好了!(否则,我想我会在某个时候把我所知道的写进一个答案,并把这些分数归功于你。)atm没有时间写一个好的答案,我的评论有点基于观点(除了二进制输入和灰度输入的区别)。您可以自己开始回答,并随时更新。我有不同的意见和提示:)由于许可证冲突,线段检测器已被删除,我建议大家对此问题竖起大拇指!“还原LineSegmentDetector LSD并避免许可证冲突”: