0、介绍

基于python,使用opencv库函数,实现监控视频中的运动目标检测,Mark一下!

干扰性和灵敏度的权衡,可通过调节代码中的参数(高斯模糊核、面积阈值、帧差间隔等)进行设置。

1、代码

以下代码亲测可直接运行。

import cv2vc = cv2.VideoCapture("C:\\Users\\jason\\Desktop\\video.MP4")  # 读入视频文件
# vc = cv2.VideoCapture("C:/Users/jason/Desktop/152821AA.MP4")rval, firstFrame = vc.read()
firstFrame = cv2.resize(firstFrame, (640, 360), interpolation=cv2.INTER_CUBIC)
gray_firstFrame = cv2.cvtColor(firstFrame, cv2.COLOR_BGR2GRAY)   # 灰度化
firstFrame = cv2.GaussianBlur(gray_firstFrame, (21, 21), 0)      #高斯模糊,用于去噪
prveFrame = firstFrame.copy()#遍历视频的每一帧
while True:(ret, frame) = vc.read()# 如果没有获取到数据,则结束循环if not ret:break# 对获取到的数据进行预处理frame = cv2.resize(frame, (640, 360), interpolation=cv2.INTER_CUBIC)gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)gray_frame = cv2.GaussianBlur(gray_frame, (3, 3), 0)cv2.imshow("current_frame", gray_frame)cv2.imshow("prveFrame", prveFrame)# 计算当前帧与上一帧的差别frameDiff = cv2.absdiff(prveFrame, gray_frame)cv2.imshow("frameDiff", frameDiff)prveFrame = gray_frame.copy()# 忽略较小的差别retVal, thresh = cv2.threshold(frameDiff, 25, 255, cv2.THRESH_BINARY)# 对阈值图像进行填充补洞thresh = cv2.dilate(thresh, None, iterations=2)image, contours, hierarchy = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)text = "Unoccupied"# 遍历轮廓for contour in contours:# if contour is too small, just ignore itif cv2.contourArea(contour) < 50:   #面积阈值continue# 计算最小外接矩形(非旋转)(x, y, w, h) = cv2.boundingRect(contour)cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)text = "Occupied!"# cv2.putText(frame, "Room Status: {}".format(text), (10, 20), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)cv2.putText(frame, "F{}".format(frameCount), (20, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)cv2.imshow('frame_with_result', frame)cv2.imshow('thresh', thresh)cv2.imshow('frameDiff', frameDiff)# 处理按键效果key = cv2.waitKey(60) & 0xffif key == 27:  # 按下ESC时,退出breakelif key == ord(' '):  # 按下空格键时,暂停cv2.waitKey(0)cv2.waitKey(0)vc.release()

3、效果展示

①、前后两帧的灰度图:

②、帧差法结果:

③、运动目标检测结果:

参考资料:

http://python.jobbole.com/81593/

https://www.cnblogs.com/gxcdream/p/7531744.html

【Python】监控视频中运动目标检测的代码实现及效果展示相关推荐

  1. 开源库 | 监控视频中的目标检测与跟踪

    介绍一份来自卡内基梅隆大学开源的主要用于监控视频中目标检测与跟踪的开源库:Object_Detection_Tracking . 其赢得了 2019 Activities in Extended Vi ...

  2. Real-world Anomaly Detection in Surveillance Videos监控视频中的现实世界异常检测

    监控视频中的现实世界异常检测,代码地址https://paperswithcode.com/paper/real-world-anomaly-detection-in-surveillance. 摘要 ...

  3. 【论文笔记】监控视频中异常事件检测及异常事件摘要

    论文作者林巍峣做的一次关于其发表在2015 neurocomputing 上的论文的讲座.因为是讲座+后期自己稍微看了一下原文,所以在这的介绍只是一个大概,属于科普方法类论文笔记- 论文链接:Summ ...

  4. 无人机视频图像运动目标检测算法综述------2019年-------------

    本篇为该综述阅读笔记 论文出处: 国内外研究: 目前,国内外学者利用无人机视频图像开展运动目标检测大多将研究重点放在典型运动目标--车辆上,例如美国[3]德国[4]等,我国也开展了利用无人机检测运动车 ...

  5. python 替换array中的值_利用Python提取视频中的字幕(文字识别)

    我的CSDN博客id:qq_39783601,昵称是糖潮丽子~辣丽 从今天开始我会陆续将数据分析师相关的知识点分享在这里,包括Python.机器学习.数据库等等. 今天来分享一个Python小项目! ...

  6. 利用python提取视频中的字幕

    利用python提取视频中的字幕 `` 一.导包 import base64 import os import cv2 import requests import aip from aip impo ...

  7. python一帧一帧读取视频_用Python从视频中提取每一帧的图片

    大家应该都有这样的情况:在看到某些视频的画面时感觉美如画,想截取下来却又烦于截图的繁琐,现在我就教大家使用Python提取视频中每一帧的画面,让大家不错过每一个精彩的瞬间! •语言:Python •所 ...

  8. access数据放到list中_利用Python提取视频中的字幕(文字识别)

    我的CSDN博客id:qq_39783601,昵称是糖潮丽子~辣丽 从今天开始我会陆续将数据分析师相关的知识点分享在这里,包括Python.机器学习.数据库等等. 今天来分享一个Python小项目! ...

  9. 异常检测 | 监控视频的异常检测与建模

    关于<监控视频的异常检测与建模综述>学习 视频异常检测算法以无监督算法为主 . 主要挑战:                      1)异常事件定义与特定场景的依赖性: 2)异常事件的稀 ...

最新文章

  1. 为什么现在的人越来越不幸福
  2. 冒犯了,问大家一个问题,会linux的进来帮我解决一下
  3. 2019春第四周作业软件
  4. 华为照片在哪个文件夹_原来华为手机还能这样清理垃圾,怪不得你的手机可以多用5年...
  5. pca数学推导_PCA背后的统计和数学概念
  6. 2017.3.12 lzy 测试
  7. oracle字符串使用函数,oracle函数大全-字符串处理函数
  8. 雷电模拟器下载与安装Fiddler证书,详细抓包教程
  9. matlab用ezplot绘制参数方程,MATLAB学习1 之画图函数
  10. Java数据类型的转换
  11. vue 富文本编辑器,插件
  12. win10查看所有的wifi密码。
  13. TeamViewer14试用版到期怎么解决--免费许可证(仅非商业用途)
  14. 个人推荐讲的非常好的数据结构免费[速成 速成 速成]视频了
  15. 小米摄像头上传云服务器,杜老师说群晖:小米云摄像头无法对接群晖存储解决方法...
  16. 三相桥式全控整流电路simulink仿真_变频器为什么要整流然后再逆变?
  17. 共享打印机客户端报错因为文件共享不安全需要SMB1协议
  18. 计算几何学 | 知识点及C++代码实现汇总
  19. 服务器启动显示防火墙,宝塔面板防火墙怎么打开
  20. Neo4j 实战篇(一)基于Py2Neo构建电影知识图谱

热门文章

  1. mysql最高权限超级用户是_MySQL中,预设的、拥有最高权限超级用户的用户名为( )...
  2. java垃圾回收根对象_Java垃圾回收怎么理解?
  3. webpack Plugins列表
  4. Linux定期监视某文件变化,监控Linux文件变化,防止服务器被黑
  5. Mybatis执行过程源码分析
  6. C~K的班级_JAVA
  7. 数据结构实验之数组三:快速转置
  8. 数据结构实验之求二叉树后序遍历和层次遍历
  9. VS2010和opencv2.4.9的配置
  10. 【深度学习】单位高斯化