基于python+openCV+flask的实时移动检测

实时移动侦测之零: 简介

2020-04-10  本文已影响0人  def_fun

同学,你是不是和我一样遇到过下列情况

所以,我就开始造轮子了

代码已开源 -> https://github.com/def-fun/rtm2/
欢迎提(脑)意(洞)见


要搞一个实时移动侦测,在我看来,主要需要这些:

1. 画面拾取

即一个摄像头。
摄像头可以用笔记本自带的,也可以用树莓派+扩展,或者插个免驱的USB摄像头,不想花钱买硬件的话,用有动作的视频文件作为输入也行🙃。


我很认真准备的插图.jpg

2. 移动判定

一个能够判断画面变化的程序。简单来说,就是在相机固定的情况下,比较画面与画面之间的区别,如果发现区别,就表明有东西移动了。
然而实际中,因为噪音、光线变化等原因,每个画面之间总是有细微的差别,所以不能简单的把画面保存为jpg等图片、再比较文件的大小、hash值等方法判断是否发生变化。
这时候openCV就派上用场了。采集帧,高斯模糊,二值化,轮廓检测,判断面积是否超过阈值,用python写只有几十行代码。这样的程序有很多,Ctrl+C/V很快就能看到效果。比如,
OpenCV3-Python简单移动目标跟踪
Motion Detection using OpenCV in Python

3. 存储与展示

拍摄的画面存储为jpg图片或者视频,并且以适当的方式展示。
如果只在本机运行,使用openCV自带的cv2.imshow()就能看到实时画面。但是如果要远程观看,则必须借助network了。
比如imageZMQ,优点是分布式、实时,但是要用ZMQ协议,无法在浏览器上展示。

to be continue.

上一篇 下一篇

猜你喜欢

热点阅读