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中执行shell命令的几个方法小结
Sep 18 Python
python实现多线程的方式及多条命令并发执行
Jun 07 Python
python实现稀疏矩阵示例代码
Jun 09 Python
详解Python在七牛云平台的应用(一)
Dec 05 Python
用Python徒手撸一个股票回测框架搭建【推荐】
Aug 05 Python
基于python实现学生信息管理系统
Nov 22 Python
pytorch forward两个参数实例
Jan 17 Python
django model object序列化实例
Mar 13 Python
Python文件操作基础流程解析
Mar 19 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
May 22 Python
python利用appium实现手机APP自动化的示例
Jan 26 Python
pytorch 如何使用amp进行混合精度训练
May 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
php生成随机数或者字符串的代码
2008/09/05 PHP
hessian 在PHP中的使用介绍
2010/12/13 PHP
PHP迭代器实现斐波纳契数列的函数
2013/11/12 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
2019/06/22 PHP
利用Ext Js生成动态树实例代码
2008/09/08 Javascript
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
2010/07/26 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
浅谈Vue响应式(数组变异方法)
2018/05/07 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
Vue中 key keep-alive的实现原理
2018/09/18 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
vue 实现v-for循环回来的数据动态绑定id
2019/11/07 Javascript
JavaScript链式调用原理与实现方法详解
2020/05/16 Javascript
vue点击标签切换选中及互相排斥操作
2020/07/17 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
[原创]教女朋友学Python(一)运行环境搭建
2017/11/29 Python
Python实现的朴素贝叶斯分类器示例
2018/01/06 Python
详解python中Numpy的属性与创建矩阵
2018/09/10 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
2019/04/18 Python
利用pyinstaller打包exe文件的基本教程
2019/05/02 Python
HTML的form表单和django的form表单
2019/07/25 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
使用python实现多维数据降维操作
2020/02/24 Python
python3实现将json对象存入Redis以及数据的导入导出
2020/07/16 Python
中学实习教师自我鉴定
2013/12/12 职场文书
钳工实训报告总结
2014/11/04 职场文书
2016教师节感恩话语
2015/12/09 职场文书
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android