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通过zlib实现压缩与解压字符串的方法
Nov 19 Python
在Python的Django框架中更新数据库数据的方法
Jul 17 Python
深入了解Python数据类型之列表
Jun 24 Python
python实现简单中文词频统计示例
Nov 08 Python
神经网络理论基础及Python实现详解
Dec 15 Python
解决nohup重定向python输出到文件不成功的问题
May 11 Python
Python使用tkinter库实现文本显示用户输入功能示例
May 30 Python
实用自动化运维Python脚本分享
Jun 04 Python
Python快速查找list中相同部分的方法
Jun 27 Python
Python中的集合介绍
Jan 28 Python
Django 对IP访问频率进行限制的例子
Aug 30 Python
Python上下文管理器用法及实例解析
Nov 11 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 前一天或后一天的日期
2008/06/28 PHP
php递归删除目录下的文件但保留的实例分享
2014/05/10 PHP
php实现按天数、星期、月份查询的搜索框
2016/05/02 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
PHP中常用的魔术方法
2017/04/28 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
PHP实现简易计算器功能
2020/08/28 PHP
PHP命名空间简单用法示例
2018/12/28 PHP
IE6下通过a标签点击切换图片的问题
2010/11/14 Javascript
再次分享18个非常棒的jQuery表格插件
2011/04/10 Javascript
jQuery之网页换肤实现代码
2011/04/30 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
获取url中用&amp;隔开的参数实例(分享)
2017/05/28 Javascript
Angular事件之不同组件间传递数据的方法
2018/11/15 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
[34:39]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第二局
2016/03/05 DOTA
python制作填词游戏步骤详解
2019/05/05 Python
python与字符编码问题
2019/05/24 Python
Django 实现xadmin后台菜单改为中文
2019/11/15 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
2020/06/22 Python
荷兰手表网站:Watch2Day
2018/07/02 全球购物
ManoMano英国:欧洲第一家专注于DIY和园艺市场的电商平台
2020/03/12 全球购物
银行见习期自我鉴定
2014/01/29 职场文书
企业员工集体活动方案
2014/08/17 职场文书
学校食堂标语
2014/10/06 职场文书
永远是春天观后感
2015/06/12 职场文书
法定代表人资格证明书
2015/06/18 职场文书
纪检监察立案决定书
2015/06/24 职场文书
初中数学教学随笔
2015/08/15 职场文书
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB