您好我想基于光流(as suggested in this answer)对视频序列中的对象进行分段,我使用的是opencv,并且能够使用calcOpticalFlowFarneback生成两个连续帧的流场功能。有人可以解释一下如何根据这个流场分割图像吗?
答案 0 :(得分:1)
由于您希望使用光流来分割对象,因此您的决策将基于您的对象的运动类型......您可以查看this video on youtube。您可以测量每个感兴趣像素在两个连续帧中经历的位移的方向和幅度,以了解它们的运动模式。在视频链接中,汽车根据光流...从背景中分割出来......
答案 1 :(得分:0)
一种非常直接的方法是为算法提供一个具有基本事实的关键帧。这意味着,手动分割第一帧(您可以在此处使用抓取),然后使用光流将分段传播到后续帧。
需要注意的是,光流因出错而闻名。因此,不是直接使用传播的分割,而是可以侵蚀(使用某些结构元素)传播的分割,并使用侵蚀的图像作为抓取的前景种子。类似地,扩张传播的分裂并使用扩张边界周围的带作为背景种子。
简而言之:对于第一帧给出基本事实,使用它来自动执行后续帧的抓取。
这有帮助吗?