python opencv实现运动检测

 更新时间:2018年07月10日 11:57:52   作者:河间老王  
这篇文章主要为大家详细介绍了python opencv实现运动检测,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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反射 & 单例模式

    这篇文章主要介绍了Python反射 & 单例模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • python实现自定义日志的具体方法

    python实现自定义日志的具体方法

    在本篇文章里小编给大家整理的是一篇关于python实现自定义日志的具体方法,有兴趣的朋友们可以学习下。
    2021-05-05
  • python执行scp命令拷贝文件及文件夹到远程主机的目录方法

    python执行scp命令拷贝文件及文件夹到远程主机的目录方法

    今天小编就为大家分享一篇python执行scp命令拷贝文件及文件夹到远程主机的目录方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法

    python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法

    今天小编就为大家分享一篇python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python Decorator的设计模式演绎过程解析

    Python Decorator的设计模式演绎过程解析

    本文主要梳理了Python decorator的实现思路,解释了为什么Python decorator是现在这个样子,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Python Selenium中等待设置的实现

    Python Selenium中等待设置的实现

    本文主要介绍了Python Selenium中等待设置的实现,过详实的示例代码,深入介绍了显式等待、隐式等待、自定义等待条件、多重等待条件、页面加载状态的等待、元素存在与可见性等待、Fluent等待以及异步JavaScript加载的等待,感兴趣的可以了解一下
    2023-12-12
  • python自动化八大定位元素讲解

    python自动化八大定位元素讲解

    这篇文章主要介绍了python自动化八大定位元素讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是本文的详细内容,需要的朋友可以参考下
    2021-07-07
  • 以windows service方式运行Python程序的方法

    以windows service方式运行Python程序的方法

    这篇文章主要介绍了以windows service方式运行Python程序的方法,可实现将Python程序变成windows服务的功能,需要的朋友可以参考下
    2015-06-06
  • 利用python设计图像加密技术(Arnold算法)

    利用python设计图像加密技术(Arnold算法)

    这篇文章主要介绍了利用python设计图像加密技术(Arnold算法),本文将借助Arnold置乱法,讲解如何用python从头至尾设计出一套图像加密算法,需要的小伙伴可以才参考一下
    2022-03-03
  • Django的ListView超详细用法(含分页paginate)

    Django的ListView超详细用法(含分页paginate)

    这篇文章主要介绍了Django的ListView超详细用法(含分页paginate),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05

最新评论