OpenCV 中是否有任何函数可以计算两个图像的每块运动矢量?

我正在寻找一种 Opencv 方法或一种方法来计算两个连续图像的每块运动矢量。



拉丁的传说
浏览 90回答 2
2回答

紫衣仙女

您对另一个答案的评论这包含密集(每像素)运动估计和每个特征估计。每块估计没有什么让我(也许是错误地)认为您正在寻找一个函数,它的存在实际上没有意义:假设您预先定义了具有所需粒度的块,您将如何计算每个块的流量?有两种可能性:计算整个图像上的稀疏 ( cv.calcOpticalFlowPyrLK()) 或密集 ( cv.calcOpticalFlowFarneback()) 流,并对每个块的结果进行平均/下采样(之后进行一些平滑处理)。计算某种“块流”(这似乎是您的想法),您可以在其中定义使用某些统计信息(或特征)表达的更高级别的块或超像素,并计算它们的流。在那种情况下,您可能会违反大多数流方法所依赖的亮度恒定性假设,即使您不这样做,这也很可能类似于在非常低分辨率的图像上计算密集流,在这种情况下,同样,可以通过cv.calcOpticalFlowFarneback().如果您在流估计管道中学习更高级别的块,那么使用它们是有意义的,但这里不是这种情况,因为它们是预定义的。第二种方案在这里意义不大,第一种方案只是简单的后期处理,看用户需求。

MM们

也许这可以帮助你Optical Flow OpenCV
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python