【发布时间】:2013-03-02 05:27:47
【问题描述】:
您好,我想根据光流 (as suggested in this answer) 分割视频序列中的对象,我正在使用 opencv,并且已经能够使用 calcOpticalFlowFarneback 函数为两个连续帧生成流场。有人能解释一下我将如何根据这个流场来分割图像吗?
【问题讨论】:
标签: opencv image-segmentation object-detection opticalflow
您好,我想根据光流 (as suggested in this answer) 分割视频序列中的对象,我正在使用 opencv,并且已经能够使用 calcOpticalFlowFarneback 函数为两个连续帧生成流场。有人能解释一下我将如何根据这个流场来分割图像吗?
【问题讨论】:
标签: opencv image-segmentation object-detection opticalflow
由于您想使用光流来分割对象,因此您的决策将基于您的对象所进行的运动类型...您可以查看this video on youtube。您可以测量每个感兴趣像素在两个连续帧中所经历的位移的方向和幅度,以了解它们的运动模式。在视频链接中,汽车是根据光流从背景中分割出来的......
【讨论】:
一个非常直接的方法是为算法提供一个具有基本事实的关键帧。这意味着,手动分割第一帧(您可以在此处使用抓取),然后使用光流将分割传播到后续帧。
需要注意的是,光流以容易出错而闻名。因此,您可以侵蚀(使用一些结构元素)传播的分割并将侵蚀的图像用作抓取的前景种子,而不是直接使用传播的分割。同样,扩大传播的分割并使用围绕扩张边界的带作为背景种子。
简而言之:对于第一帧给出基本事实,使用它在后续帧上自动执行抓取。
这有帮助吗?
【讨论】: