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出现_warn_unsafe_extraction问题的方法
Mar 24 Python
python中requests使用代理proxies方法介绍
Oct 25 Python
pytorch 把MNIST数据集转换成图片和txt的方法
May 20 Python
python解析json串与正则匹配对比方法
Dec 20 Python
Python实现的合并两个有序数组算法示例
Mar 04 Python
Python使用指定端口进行http请求的例子
Jul 25 Python
python实现网站微信登录的示例代码
Sep 18 Python
Python中的四种交换数值的方法解析
Nov 18 Python
从numpy数组中取出满足条件的元素示例
Nov 26 Python
Python中import导入不同目录的模块方法详解
Feb 18 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
Jan 27 Python
Python制作一个随机抽奖小工具的实现
Jul 07 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生成条形码的图片的实例详解
2017/09/13 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
JQuery的AJAX实现文件下载的小例子
2013/05/15 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
JavaScript开发人员的10个关键习惯小结
2014/12/05 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
Javascript中arguments用法实例分析
2015/06/13 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
nodeJs链接Mysql做增删改查的简单操作
2017/02/04 NodeJs
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
详解js类型判断
2018/05/22 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
详解nvm管理多版本node踩坑
2019/07/26 Javascript
基于JavaScript实现十五拼图代码实例
2020/04/26 Javascript
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
python中的lambda表达式用法详解
2016/06/22 Python
Django验证码的生成与使用示例
2017/05/20 Python
python3安装speech语音模块的方法
2018/12/24 Python
Python整数对象实现原理详解
2019/07/01 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
pandas分组聚合详解
2020/04/10 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
Python 虚拟环境工作原理解析
2020/12/24 Python
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
写一个方法1000的阶乘
2012/11/21 面试题
优秀团员事迹材料
2014/12/25 职场文书
同事欢送会致辞
2015/07/31 职场文书