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