OpenCV检测场景内是否有移动物体


本帖使用OpenCV检测移动的物体(洋文:Motion Detection)。它的应用非常广泛,常用在视频监控(当摄像头内有移动物体出现时,摄像头会自动抓拍,并保存图像/视频)、车流量监控等等。

我喜欢听着音乐上大号,我就想有没有办法在我上大号时自动播放音乐,智能马桶的滚粗(能放音乐的应该不多)。这时,我想起了闲置的树莓派,使用OpenCV+树莓派做Motion Detection,只要检测到有移动的东西(人)就开始播放音乐。恩,没错,本人相当懒。另外,在上大号时被摄像头照着也挺别扭。

Motion Detection的实现方法有很多,我使用的方法是Background subtractiontutorial_py_bg_subtraction

Background subtraction基本原理:首先取一张静态的背景图(不包含要检测的移动物体),然后比较监控图像(包含移动物体)和背景图,找到不同区域,这个区域就是要检测的物体。在现实环境中要复杂的多,我们还要考虑到光线变化、阴影、反射等等影响背景环境的因素。

本帖代码运行环境:Ubuntu + OpenCV 3.1,稍作修改即可在树莓派上运行。

OpenCV检测移动物体

我在摄像头前稍有移动,它就检测出来了。如果我在摄像头前保持静止,由于前一帧和当前帧没有大的变化,它就认为场景内没有移动的东西。

下面只要起一个线程播放音乐就大公告成了。

Python播放mp3的方法非常多,由于我使用Linux系统,最简单的方式是直接调用mplayer,连线程都省了。

树莓派读摄像头代码片段:

相关资源


转载自:http://blog.topspeedsnail.com/archives/10797
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值