首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当从摄像头检测到运动时,OpenCv C++会录制视频

当从摄像头检测到运动时,OpenCv C++会录制视频
EN

Stack Overflow用户
提问于 2013-04-13 07:27:25
回答 3查看 1.6K关注 0票数 2

我正在尝试使用简单的运动检测代码来检测来自摄像机的运动。我正在使用OpenCV库,并且我有一些代码可以利用两个帧之间的差异来检测更改。

我有不同的框架工作得很好,当没有运动时它是黑色的。

问题是,现在我如何检测黑度来停止录制,或者没有黑度来开始录制帧。

谢谢大家。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-13 23:44:23

看一看自由软件motion的代码,以获得灵感。

为了进行可靠的运动检测,有很多事情需要牢记。例如,容忍太阳自转带来的缓慢变化。或者接受瞬间的图像毛刺,这可能来自于最便宜的相机。

根据我的一个小经验,我认为计算变化超过某个阈值的像素数比简单地将所有差异加起来更好。

Motion还提供了遮罩,例如,可以让您忽略附近道路上的移动。

票数 1
EN

Stack Overflow用户

发布于 2013-04-13 07:41:05

要做的一件非常简单的事情是将整个diff图像相加为一个整数。如果总和高于阈值,则表示有移动。然后你可以使用第二个阈值,当总和低于这个限制时,你就停止了移动。

您还可以使阈值仅在自上一个阈值以来经过了一段时间后才更改程序状态。也就是说,在检测到移动后,你不会检查10秒内是否没有移动。

票数 2
EN

Stack Overflow用户

发布于 2013-04-13 07:41:21

如果在内部存储一个黑色帧并使用相同的比较代码呢?如果您的新帧与全黑帧不同(高于阈值),请开始录制。

这似乎是最简单的,因为您已经有了图像处理算法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15982415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档