gpt4 book ai didi

c++ - 使用opencv检测水面上的白球的最佳方法是什么?

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

我在水面上放了一个白色的小球。风使白球在水中移动。我想使用 opencv 来检测和跟踪球。因为背景(水面)是单色的,球也是单色的。我只是使用 hsv 中的颜色并设置一个阈值来检测白色(球)。我认为这种方式比 camshift、tld、光流法更容易、更好。现在我有一个问题,我检测到白色来找到球,但有时风很大,水波会随着球而起。就像下面的图片一样

enter image description here

波在 hsv 中也有白色。所以当我使用 findcontours 获取球的边缘时,我将获得包括球和波浪的边缘。我曾尝试使用侵 eclipse 和扩张来消除波噪声。但我无法得到好的结果。我现在不知道。你能帮我看看我怎样才能更好地消除波浪吗?我不确定仅使用颜色来检测球是否是我的最佳选择。也许我应该尝试 camshift、tld、光流法?你能告诉我你的想法吗?提前致谢!

最佳答案

目前我想不出一个完美的解决方案,但我可以建议你一个至少可以帮助你误检球的策略。

整个场景的光流可以帮助您找到所有像素或选定关键点的速度。一旦找到场景的速度,就需要设置一个阈值,以便在场景的速度更高时停止检测球。

Waves -> water moves fast-> pixels velocity increases (in x or y direction) -> optical flow will tell you this situation -> 用HSV方法停止球检测。

换句话说,仅当水的移动速度不太快并且您可以使用光流法知道该速度时,才应用现有的基于 HSV 方法的球检测方法。

关于c++ - 使用opencv检测水面上的白球的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31354596/

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