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通过ftplib登录到ftp服务器的方法
May 08 Python
python基础知识小结之集合
Nov 25 Python
Python for Informatics 第11章之正则表达式(二)
Apr 21 Python
Python图算法实例分析
Aug 13 Python
Python 结巴分词实现关键词抽取分析
Oct 21 Python
python实现超市扫码仪计费
May 30 Python
win8下python3.4安装和环境配置图文教程
Jul 31 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
Dec 05 Python
Python 互换字典的键值对实例
Feb 12 Python
Django Admin中增加导出CSV功能过程解析
Sep 04 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
Sep 29 Python
pytorch 实现在预训练模型的 input上增减通道
Jan 06 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 simplexml_load_string()函数实例讲解
2019/02/03 PHP
JavaScript继承方式实例
2010/10/29 Javascript
在vs2010中调试javascript代码方法
2011/02/11 Javascript
js动态创建表格,删除行列的小例子
2013/07/20 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
2015/09/15 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
2016/12/26 Javascript
javascript表单正则应用
2017/02/04 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
在页面中引入js的两种方法(推荐)
2017/08/29 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
js+css实现打字效果
2020/06/24 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
2020/07/17 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
jquery实现加载更多&quot;转圈圈&quot;效果(示例代码)
2020/11/09 jQuery
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
python+selenium+autoit实现文件上传功能
2017/08/23 Python
python3实现字符串操作的实例代码
2019/04/16 Python
深入了解Python枚举类型的相关知识
2019/07/09 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
keras实现图像预处理并生成一个generator的案例
2020/06/17 Python
英国曼彻斯特宠物用品品牌:Bunty Pet Products
2019/07/27 全球购物
机械化及自动化毕业生的自我评价分享
2013/11/06 职场文书
数学高效课堂实施方案
2014/03/29 职场文书
班级读书活动总结
2014/06/30 职场文书
学校食堂标语
2014/10/06 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
英语读书笔记
2015/07/02 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书