gpt4 book ai didi

python - OpenCV HoughCircles 偶尔会返回 [0. 0. 0.]

转载 作者:太空宇宙 更新时间:2023-11-03 22:19:12 25 4
gpt4 key购买 nike

我在 Raspberry Pi 上的 HSV 过滤 PiCamera 馈送上运行 HoughCircles() 以检测粉红色球。偶尔我会得到 [[[0 的 ndarray 结果。 0. 0.]]]np.zeros(shape=(1, 1, 3)) 相同,而不是预期的 None当相机 View 中没有圆形时。我查看了文档,但没有看到任何关于它为什么会返回这个的细节。我还查看了源代码,但找不到 C++ code 的 Python 包装器,这似乎也对我没有帮助。

这是我的函数调用:

circles = cv2.HoughCircles(frame, cv2.HOUGH_GRADIENT, 3, frame.shape[0] / 4, param1=220, param2=110, minRadius=5)

我想知道为什么它正在做一些事情,比如识别一些我什至在 imshow() 上都看不到的非常小的东西(它在 (0,0) 周围总是完全黑色;几十个行和列只有零),那么为什么它总是在(0,0)且半径为 0?当我提供 minRadius=5 时,我看不出它如何返回半径为 0 的圆。我不相信这实际上是一个有效的检测。有时需要执行数百次才能发生这种情况,但似乎我可以通过快速移动相机旁的某物(例如我的手)来触发它。

知道为什么会发生这种情况,也许其他人已经经历过这种情况?

最佳答案

我在 C++ 中遇到了一个相同的问题,其中 HoughCircles() 会为某些图像返回一个包含单个 [0,0,0] 的列表。发现这是由 OpenCV 中的 RemoveOverlaps() 方法中的错误引起的,将在未来的版本(例如 3.4.7、4.2.0 等)中修复。

如果您想了解更多信息,请查看我编写的错误报告: https://github.com/opencv/opencv/issues/14432

关于python - OpenCV HoughCircles 偶尔会返回 [0. 0. 0.],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53001840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com