【发布时间】:2014-08-20 23:31:34
【问题描述】:
我有一个项目需要检测视频流中的运动。当检测到运动时,会进行进一步的处理。不需要检测检测到运动的区域或更详细的信息。我只需要测量两个图像之间变化像素的百分比或类似的东西作为进一步处理的触发器。
我的想法是获取两个图像的绝对差异,对其进行阈值化并计算像素。我正在使用 cv::absdiff、cv::threshold 和 cv::countNonZero。对于全高清图像,此计算大约需要 10 毫秒。在 30 fps 时,这在单个内核上加起来为 10 * 30 = 300 ms。
这还不包括图像的灰度转换,与差异图像计算相比,这大约需要 2-3 倍。所以我可以在单核上处理大约 10 fps 的全高清。
我现在正在寻找一种显着加快灰度转换/运动检测的方法。就计算能力而言,在 RGB 视频流中进行运动检测的最快方法是什么?
【问题讨论】:
标签: opencv real-time detection motion