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批量解压文件遇中文乱码及解决过程,文中有详细的图解及代码示例,具有一定的参考价值,需要的朋友可以参考下
    2023-08-08
  • 15个Pythonic的代码示例(值得收藏)

    15个Pythonic的代码示例(值得收藏)

    这篇文章主要介绍了15个Pythonic的代码示例(值得收藏),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 使用Python的PIL如何将数组输出图像

    使用Python的PIL如何将数组输出图像

    这篇文章主要介绍了使用Python的PIL如何将数组输出图像问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python使用psutil库实现系统监控与管理详解

    Python使用psutil库实现系统监控与管理详解

    在我们的测试工作中,监控和管理系统资源是一项重要的任务,本文将介绍如何使用psutil库来实现系统监控和管理,以及一些实用的技巧和示例,希望对大家有所帮助
    2022-10-10
  • Python实现的下载网页源码功能示例

    Python实现的下载网页源码功能示例

    这篇文章主要介绍了Python实现的下载网页源码功能,涉及Python基于http请求与响应实现的网页源码读取功能相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • 详解如何利用Pytest Cache Fixture实现测试结果缓存

    详解如何利用Pytest Cache Fixture实现测试结果缓存

    这篇文章主要为大家详细介绍了如何利用Pytest Cache Fixture实现测试结果缓存,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-09-09
  • pycharm python代码调试跳出for循环问题

    pycharm python代码调试跳出for循环问题

    这篇文章主要介绍了pycharm python代码调试跳出for循环问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python Flask JinJa2 语法使用示例详解

    Python Flask JinJa2 语法使用示例详解

    这篇文章主要为大家介绍了Python Flask JinJa2 语法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Python中zip()函数的使用方法详解

    Python中zip()函数的使用方法详解

    在Python中,zip()函数是一个非常实用且强大的内置函数,它主要用于将多个迭代器(如列表、元组、字符串等)中的元素“打包”成一个个元组,并返回一个迭代器,下面,我将详细探讨zip()函数的使用方法,需要的朋友可以参考下
    2024-09-09
  • python创建模板文件及使用教程示例

    python创建模板文件及使用教程示例

    这篇文章主要介绍了python创建模板文件及使用教程示例
    2021-10-10

最新评论