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通过colorama模块在控制台输出彩色文字的方法
Mar 19 Python
python排序方法实例分析
Apr 30 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
Python简单定义与使用二叉树示例
May 11 Python
python bmp转换为jpg 并删除原图的方法
Oct 25 Python
Python定义函数功能与用法实例详解
Apr 08 Python
python取余运算符知识点详解
Jun 27 Python
python查看文件大小和文件夹内容的方法
Jul 08 Python
详解PyTorch手写数字识别(MNIST数据集)
Aug 16 Python
Python如何读取文件中图片格式
Jan 13 Python
Jupyter加载文件的实现方法
Apr 14 Python
在vscode中启动conda虚拟环境的思路详解
Dec 25 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+AJAX传送中文会导致乱码的问题的解决方法
2008/09/08 PHP
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
php过滤XSS攻击的函数
2013/11/12 PHP
ThinkPHP页面跳转success与error方法概述
2014/06/25 PHP
PHP 获取指定地区的天气实例代码
2017/02/08 PHP
JavaScript中链式调用之研习
2011/04/07 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
Jquery动态替换div内容及动态展示的方法
2015/01/23 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
解决URL地址中的中文乱码问题的办法
2017/02/10 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
Vue 2.0学习笔记之Vue中的computed属性
2017/10/16 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
js代码规范之Eslint安装与配置详解
2018/09/08 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
layui 表格操作列按钮动态显示的实现方法
2019/09/06 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
pandas dataframe的合并实现(append, merge, concat)
2019/06/24 Python
python 字典的打印实现
2019/09/26 Python
玩具反斗城西班牙网上商城:ToysRUs西班牙
2017/01/19 全球购物
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
大学新生军训感言
2014/02/25 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
2015年预备党员自我评价
2015/03/04 职场文书
周末问候语大全
2015/11/10 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
MySQL中varchar和char类型的区别
2021/11/17 MySQL
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL