【发布时间】:2017-11-06 07:03:37
【问题描述】:
我正在尝试在 OpenCV C++ 中实现运动检测。我尝试了各种方法,例如 MOG、光流,它们工作得很好,但是有没有办法我们可以消除场景中的恒定运动,比如恒定的扇形运动等?我想到了 opencv accumuateWeighted(),但不确定它是否有效。我们有什么更好的方法吗?
【问题讨论】:
-
嗯,这取决于你如何定义运动?例如,如果您有图像的二进制表示,其中有运动的白色和没有运动的黑色,您可以平均帧(二进制帧,使用浮点数或双精度数)。然后,您可以根据自己的喜好对该平均图像进行阈值处理,例如,如果您使用 200 帧,如果像素超过 0.5,则它移动超过 100 帧......或超过 150 帧时移动 0.75.. 越接近 1 (如果二进制图像在移动区域中有 1)它移动得越多。然后,您可以在图像中屏蔽这些区域。如果它在同一个地方,这有效
-
你所说的恒定运动是什么意思——它是指只有旋转或周期性运动但在一定时间内没有平移的物体吗?
-
@flamelite 常量运动,如树叶、风扇等的局部运动
-
@api55 感谢您的建议。我会看到的。
标签: c++ opencv image-processing motion-detection