【发布时间】:2021-11-06 10:46:04
【问题描述】:
我已经从视频中提取帧并转换成光流看起来像这样;
您可以清楚地看到,有些帧提供了运动对象的信息(frame000037、frame000039 等),有些是静态的(frame000038、frame000040、frame000042 等)。
我已经阅读了静态帧和移动帧以查看使用 OpenCV 的差异,谁能告诉我谁能过滤掉那些包含运动信息的所有帧?
我采用了平均值、标准偏差、归一化,但它们对我不起作用,因为静态的像素值可能大于可移动的像素值,并且在某些情况下它可能小于可移动的,因此它不起作用每种情况。
【问题讨论】:
-
似乎每两帧出现一次空帧。每两帧没有信息。因此,首先,您可以考虑只处理非空帧。可能问题不是opencv,而是你的帧速率。
-
在光流上计算合适的统计数据到底有什么问题?想出两个阈值应该很简单,一个将每个像素标记为移动/静态,另一个表示总共有多少像素在移动/不移动。 -- 是的,一个简单的直方图可以提供更多信息,但您不需要更多。
-
我不敢相信标准差不起作用。正如马里奥所指出的,每隔一帧都是安静的,这是不正常的。
-
每隔一帧都是静态的,因为它没有在可移动帧之后移动。并非所有帧都如此,有些帧是连续运动的。您有什么建议让我了解两个框架之间的差异,然后可以选择那些可移动的框架。
-
静态帧可能来自某些人对视频的严重转换,或者在编辑原始素材时不知道帧速率。 -- 你应该绘制运动矢量的幅度,而不是你在那里做的任何事情。
标签: python opencv image-processing computer-vision