gpt4 book ai didi

opencv - 如何确定对象是否停止移动或离开框架

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

我读过的每个教程、示例或博客都展示了跟踪帧中移动对象的各种方法,只要它是移动。这已经变得无处不在。

我一直想弄清楚的是如何确定对象是停止移动还是实际上离开了框架。使用背景分离时,当对象停止移动时,它会成为前景的一部分并因此“消失”。当它再次移动时,它会“重新出现”。据我所知,当对象离开框架时存在相同的行为,它只是“消失”了。例如,以下代码片段演示了这一点:

**BackgroundSubtractorMOG2 _fgDetector = new BackgroundSubtractorMOG2();
CvBlobDetector _blobDetector = new CvBlobDetector();
CvTracks _tracker = new CvTracks();
CvBlobs _blobs = new CvBlobs();**

private int FindAndTrack()
{
CvInvoke.GaussianBlur(_analyzeMat, _smoothedFrame, new System.Drawing.Size(3, 3), 1);

#region use the BG/FG detector to find the forground mask

_fgDetector.Apply(_smoothedFrame, _foregroundMask);

#endregion use the BG/FG detector to find the forground mask

_blobDetector.Detect(_foregroundMask.ToImage<Gray, byte>(), _blobs);
_blobs.FilterByArea(_minimumAreaValue, int.MaxValue);

_tracker.Update(_blobs, 0.01 * _scaleValue, 1, 5);
return _tracker.Count;
}

我不再确定背景分离可能是答案。

什么会给出对象离开框架的明确指示?

谢谢,道格

最佳答案

如果条件失败,则将 tracker.update 作为 if 循环的条件,您感兴趣的对象已离开框架。如果要检测对象是否已移动,则将对象边界框的 x 和 y 值与边界框先前的 x 和 y 值进行比较,如果值与对象停止移动的值相同,否则它已移动

关于opencv - 如何确定对象是否停止移动或离开框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43638824/

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