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获取当前时间对应unix时间戳的方法
May 15 Python
python入门基础之用户输入与模块初认识
Nov 14 Python
Centos部署django服务nginx+uwsgi的方法
Jan 02 Python
Python绘图Matplotlib之坐标轴及刻度总结
Jun 28 Python
python输出电脑上所有的串口名的方法
Jul 02 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
Sep 05 Python
Django 解决model 反向引用中的related_name问题
May 19 Python
解决pip install psycopg2出错问题
Jul 09 Python
基于python判断字符串括号是否闭合{}[]()
Sep 21 Python
使用django自带的user做外键的方法
Nov 30 Python
Django项目如何正确配置日志(logging)
Apr 29 Python
python基础之错误和异常处理
Oct 24 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
smarty模板局部缓存方法使用示例
2014/06/17 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
javascript 终止函数执行操作
2014/02/14 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
jQuery代码性能优化的10种方法
2016/06/21 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
2016/12/07 Javascript
jQuery的extend方法【三种】
2016/12/14 Javascript
js实现简单的二级联动效果
2017/03/09 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
javaScript中&quot;==&quot;和&quot;===&quot;的区别详解
2018/03/16 Javascript
JavaScript ES2019中的8个新特性详解
2019/02/20 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[36:41]完美世界DOTA2联赛循环赛FTD vs Magma第一场 10月30日
2020/10/31 DOTA
python接口自动化测试之接口数据依赖的实现方法
2019/04/26 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
2020/01/03 Python
python中逻辑与或(and、or)和按位与或异或(&amp;、|、^)区别
2020/08/05 Python
Scrapy中如何向Spider传入参数的方法实现
2020/09/28 Python
CSS3教程(5):网页背景图片
2009/04/02 HTML / CSS
英国比较机场停车场网站:Airport Parking Essentials
2019/12/01 全球购物
安全生产计划书
2014/05/04 职场文书
工程售后服务方案
2014/06/08 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
2014年会计主管工作总结
2014/12/20 职场文书
西柏坡观后感
2015/06/08 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书