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 相关文章推荐
PyMongo安装使用笔记
Apr 27 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 Python
利用python打印出菱形、三角形以及矩形的方法实例
Aug 08 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
Jun 14 Python
python使用phoenixdb操作hbase的方法示例
Feb 28 Python
python flask安装和命令详解
Apr 02 Python
Python+Selenium使用Page Object实现页面自动化测试
Jul 14 Python
Django 自动生成api接口文档教程
Nov 19 Python
python用什么编辑器进行项目开发
Jun 17 Python
用OpenCV进行年龄和性别检测的实现示例
Jan 29 Python
python 实现图片特效处理
Apr 03 Python
python图像处理 PIL Image操作实例
Apr 09 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
ASP和PHP都是可以删除自身的
2007/04/09 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
PHP Redis扩展无法加载的问题解决方法
2019/08/22 PHP
JavaScript 指导方针
2007/04/05 Javascript
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
解决jquery的datepicker的本地化以及Today问题
2012/05/23 Javascript
jQuery之按钮组件的深入解析
2013/06/19 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
Highcharts入门之简介
2016/08/02 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
2017/01/19 Javascript
Vue之Watcher源码解析(1)
2017/07/19 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
Python函数中定义参数的四种方式
2014/11/30 Python
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
python如何写try语句
2020/07/14 Python
幸福家庭事迹材料
2014/02/03 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
作风整顿剖析材料
2014/09/30 职场文书
2014年护理部工作总结
2014/11/14 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
2019年大学生学年自我鉴定!
2019/03/25 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
python获取对象信息的实例详解
2021/07/07 Python
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技