【问题标题】:OpenCV hough lines vs scikit-imageOpenCV 霍​​夫线与 scikit-image
【发布时间】:2020-05-23 14:07:55
【问题描述】:

我一直在比较 OpenCV 和 scikit-image 的霍夫线实现,我发现 scikit-image 提供了明显更好的结果。我正在尝试在两者中进行相同的 canny/hough 线转换(在 OpenCV 中添加了 GaussianBlur,因为我相信 scikit 作为 canny 的一部分)。

如果可能的话,我想了解如何从 OpenCV 获得与从 scikit-image 获得相似的结果。

这是 scikit-image 的结果:

这是来自 OpenCV 的结果:

你可以看到他们明显更糟。 OpenCV 的中间精明输出也更差,(但不是很大),所以我不确定这是否是问题所在?

我已将代码和结果上传到https://github.com/grokys/hough-test。为我的 Python 技能道歉。

【问题讨论】:

  • 虽然OpenCVscikit-image 似乎实现了相同的算法,但你怎么知道他们以相同/“正确”的方式实现它? HoughLinesP 具有距离和角度分辨率参数(您明确设置),probabilistic_hough_line 仅允许在某些角度进行处理(您不使用)。恐怕要获得明确的答案,您需要深入研究源代码。
  • 是的,他们显然没有以完全相同的方式实现它们,但我已经尝试查看源代码(尝试过,因为 OpenCV 不完全可读)并且它们出现 i> 做大致相同的事情。我希望听到对这些事情更了解的人的意见,他们可能知道其中的区别并且知道如何改进 OpenCV 输出。
  • scikit内部如何选择参数?也许您可以尝试在算法级别使用相同的参数?
  • 您使用的是什么版本的 OpenCV 和 scikit-learn?

标签: python opencv computer-vision scikit-image


【解决方案1】:

函数HoughLinesPprobabilistic_hough_line 是等效的,因为它们旨在执行相同的操作。但是,实现方式显然完全不同。这从他们有不同的论点这一事实就可以看出。简单的答案是,如果您为函数提供等效参数,则可以从任一函数获得相同的结果。这不是函数或它们如何实现的问题,而是您传递给它们的参数的问题。

【讨论】:

    猜你喜欢
    • 2012-07-06
    • 2015-02-16
    • 2011-12-17
    • 2016-02-06
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多