Opencv C++ 在阈值图像中发现运动

Posted

技术标签:

【中文标题】Opencv C++ 在阈值图像中发现运动【英文标题】:Opencv C++ finding movement in a thresholded image 【发布时间】:2011-08-24 13:45:11 【问题描述】:

我正在使用带有 C++ 的 openCv,并且我试图在不同的光照条件下找到一个移动的球。到目前为止,我能够通过使用 HSV 颜色空间对其进行阈值化来过滤图像。这样做的问题是它会拾取具有相似颜色的其他对象。每次有一个不同颜色/背景的球时,要计算出确切的 hsv 范围是非常乏味的。

我有没有办法对阈值二值图像应用任何过滤器以仅检测移动的对象?这样我只会找到球而不是其他物体,因为它们通常是静止的。

谢谢,

瓦伦

【问题讨论】:

它是移动球的静止快照,还是从该图像的一帧移动到下一帧? 它将从一帧移动到下一帧。我在网络摄像头提要上执行此操作。谢谢, 【参考方案1】:

最简单的方法是在图像序列中进行帧差分/背景学习。

帧差:减去两个连续的帧,结果是运动的部分(你可能只会得到运动物体的边缘)

背景学习:例如平均构建超过 50 帧,这将是您学习的背景,然后减去当前帧,不同的是移动部分

【讨论】:

我四处寻找这个,我理解这个概念,但我很难在 C++ 中实现它。你有什么建议吗? 究竟是什么问题?看来您已经熟悉 opencv。 响应延迟了很多,但这确实帮助我解决了之后的问题。我只需要多读一点。谢谢

以上是关于Opencv C++ 在阈值图像中发现运动的主要内容,如果未能解决你的问题,请参考以下文章

瞳孔阈值(眼动追踪)- 使用 C++ 的 OpenCV

Python+OpenCV图像处理(十六)—— 轮廓发现

opencv-阈值分割

图像阈值化-thresholdadaptivethreshold

OpenCV:如何找到运动信息的质心/质心

OpenCV C++案例实战九《对象计数》