python opencv实现运动检测


Posted in Python onJuly 10, 2018

本文实例为大家分享了python opencv运动检测的具体代码,供大家参考,具体内容如下

# -*- coding:utf-8 -*-
__author__ = 'kingking'
__version__ = '1.0'
__date__ = '14/07/2017'
import cv2
import numpy as np
import time
 
camera = cv2.VideoCapture(0) # 参数0表示第一个摄像头
# 判断视频是否打开
if (camera.isOpened()):
  print('Open')
else:
  print('摄像头未打开')
background = cv2.imread('img.png',0)#读入一幅图像
es = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (9, 4))
while True:
  # 按'q'健退出循环
  key = cv2.waitKey(1) & 0xFF
  # 读取视频流
  grabbed, img = camera.read()
  gray1 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  gray = cv2.GaussianBlur(gray1, (21, 21), 0)#可在这添加处理程序
  #!!!等相机稳定后按下W选择背景
  if key == ord('w'):
    background = gray
    print '背景已选定'
  diff = cv2.absdiff(gray, background)
  binary = cv2.threshold(diff, 25, 255, cv2.THRESH_BINARY)[1]#二值化阈值处理
  dilation = cv2.dilate(binary, es, iterations=2) # 形态学膨胀<--可在这添加处理程序
  contours, hierarchy = cv2.findContours(dilation.copy(), cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
  for c in contours:
    # 对于矩形区域,只显示大于给定阈值的轮廓,所以一些微小的变化不会显示。
    if cv2.contourArea(c) < 1500: 
      continue
    (x, y, w, h) = cv2.boundingRect(c) # 该函数计算矩形的边界框
    cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
  cv2.imshow('img', img)
  cv2.imshow('dilation', dilation)
 
  if key == ord('q'):
    break
camera.release()#ubuntu一定要释放相机资源否则要重启才能再次使用
cv2.destroyAllWindows()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之编写类之二方法
Oct 11 Python
Python类的专用方法实例分析
Jan 09 Python
如何用python整理附件
May 13 Python
浅谈Series和DataFrame中的sort_index方法
Jun 07 Python
python编写简易聊天室实现局域网内聊天功能
Jul 28 Python
pyqt5 QProgressBar清空进度条的实例
Jun 21 Python
对django layer弹窗组件的使用详解
Aug 31 Python
python处理document文档保留原样式
Sep 23 Python
500行代码使用python写个微信小游戏飞机大战游戏
Oct 16 Python
Python post请求实现代码实例
Feb 28 Python
使用python3 实现插入数据到mysql
Mar 02 Python
用python 绘制茎叶图和复合饼图
Feb 26 Python
python中单下划线_的常见用法总结
Jul 10 #Python
浅谈dataframe中更改列属性的方法
Jul 10 #Python
对python sklearn one-hot编码详解
Jul 10 #Python
python的scikit-learn将特征转成one-hot特征的方法
Jul 10 #Python
pandas使用get_dummies进行one-hot编码的方法
Jul 10 #Python
详解python中的装饰器
Jul 10 #Python
pandas值替换方法
Jul 10 #Python
You might like
php自定文件保存session的方法
2014/12/10 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
2019/04/10 PHP
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
jquery和js实现对div的隐藏和显示方法
2014/09/26 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
跟我学习javascript的严格模式
2015/11/16 Javascript
整理Javascript基础语法学习笔记
2015/11/29 Javascript
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
基于Vue-cli快速搭建项目的完整步骤
2018/11/03 Javascript
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
2019/01/31 Javascript
vue进入页面时滚动条始终在底部代码实例
2019/03/26 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
ansible作为python模块库使用的方法实例
2017/01/17 Python
Python函数式编程
2017/07/20 Python
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
Django restframework 源码分析之认证详解
2019/02/22 Python
Python Numpy计算各类距离的方法
2019/07/05 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
波兰运动鞋网上商店:Distance.pl
2020/07/30 全球购物
面向对象编程的优势是什么
2015/12/17 面试题
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
科室工作个人总结的自我评价
2013/10/29 职场文书
新闻专业本科生的自我评价分享
2013/11/20 职场文书
企业统计员岗位职责
2013/12/13 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
工作保证书
2015/01/17 职场文书
导游词之四川熊猫基地
2020/01/13 职场文书