我正在尝试使用简单的运动检测代码来检测来自摄像机的运动。我正在使用OpenCV库,并且我有一些代码可以利用两个帧之间的差异来检测更改。
我有不同的框架工作得很好,当没有运动时它是黑色的。
问题是,现在我如何检测黑度来停止录制,或者没有黑度来开始录制帧。
谢谢大家。
发布于 2013-04-13 23:44:23
看一看自由软件motion的代码,以获得灵感。
为了进行可靠的运动检测,有很多事情需要牢记。例如,容忍太阳自转带来的缓慢变化。或者接受瞬间的图像毛刺,这可能来自于最便宜的相机。
根据我的一个小经验,我认为计算变化超过某个阈值的像素数比简单地将所有差异加起来更好。
Motion还提供了遮罩,例如,可以让您忽略附近道路上的移动。
发布于 2013-04-13 07:41:05
要做的一件非常简单的事情是将整个diff图像相加为一个整数。如果总和高于阈值,则表示有移动。然后你可以使用第二个阈值,当总和低于这个限制时,你就停止了移动。
您还可以使阈值仅在自上一个阈值以来经过了一段时间后才更改程序状态。也就是说,在检测到移动后,你不会检查10秒内是否没有移动。
发布于 2013-04-13 07:41:21
如果在内部存储一个黑色帧并使用相同的比较代码呢?如果您的新帧与全黑帧不同(高于阈值),请开始录制。
这似乎是最简单的,因为您已经有了图像处理算法。
https://stackoverflow.com/questions/15982415
复制相似问题