当前位置:首页 > 编程教程 > Python技术文章 > python opencv实现运动检测

详解python opencv运动检测

  • 发布时间:
  • 作者:码农之家
  • 点击:178

这篇文章主要知识点是关于python、opencv、运动检测、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python物理学高效计算
  • 类型:Python应用大小:6.6 MB格式:PDF作者:安东尼·斯科普斯
立即下载

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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

Python 相关电子书
学习笔记
网友NO.255571

python opencv调用笔记本摄像头

通过查看书籍,自己总结了一下,怎样用python代码实现调用笔记本摄像头的功能。 这主要是通过opencv中cv2模块来实现这个功能。其中是调用cv2中的函数,比如:imread()函数,imshow()函数等等.... 以下是具体的实现代码: 1.通过窗口展示图片: import cv2 """:param 无:return 无""""" # 读取图片img = cv2.imread("index.jpeg", 0) img2=cv2.imread("feifei.jpeg",0)# 显示图片,第一个参数是窗口名称,第二个参数是图片名字cv2.imshow("image", img)#设置图片窗口延迟,参数为0,键盘无限期的等待键入。cv2.waitKey(0)#删除所有新建的窗口# cv2.destroyAllWinfdows()#删除指定的窗口cv2.destroyWindow("image") 图片展示如下: 2.自定义图片展示窗口,可以调整窗口的大小,针对图片比较大的,可以适当调整。 #自定义图片打开窗口,大小可以调节# 先自定义一个窗口,参数一是窗口名称,参数2是可以调整窗……

网友NO.128928

用Python+OpenCV对比图像质量的几种方法

前言 图片的本质就是大量像素在二维平面上的组合,每个像素点用数字化方式记录颜色。可以直观的想象,一张图片就是一个巨大的电子栅格,每个格子内有一盏灯泡,这个灯泡可以变换256的三次方种颜色,就像下面这张卡通像素图一样,越清晰的图片像素越密集。 这一次来看看OpenCV提供的两种图像质量对比方式(PSNR nbsp;https://www.mathcha.io/editor 1. MSE对比 均方差 MSE(Mean Squared Error)对比, 思路是对两张尺寸完全相同的图片一个个像素进行对比,对比的数值就是颜色。注意下面公式有两个维度,因为我们对比的图像是像素矩阵,m and n 代表行数和列数。 MSE formula MSE公式自己用numpy写几行代码实现,这里唯一要注意的是我找的图片是彩色的,因为有BGR3个颜色通道所以MSE要除以3得到平均值。 有了核心逻辑后准备一下素材 - 著名的经典图片Lena,再手工压缩75%……

网友NO.240254

Python OpenCV处理图像滤镜和图像运算用法知识点

本文实例为大家分享了Python OpenCV处理图像之滤镜和图像运算的具体代码,供大家参考,具体内容如下 0x01. 滤镜 喜欢自拍的人肯定都知道滤镜了,下面代码尝试使用一些简单的滤镜,包括图片的平滑处理、灰度化、二值化等: import cv2.cv as cv image=cv.LoadImage(img/lena.jpg, cv.CV_LOAD_IMAGE_COLOR) #Load the imagecv.ShowImage(Original, image) grey = cv.CreateImage((image.width ,image.height),8,1) #8depth, 1 channel so grayscalecv.CvtColor(image, grey, cv.CV_RGBA2GRAY) #Convert to gray so act as a filtercv.ShowImage(Greyed, grey) # 平滑变换smoothed = cv.CloneImage(image)cv.Smooth(image,smoothed,cv.CV_MEDIAN) #Apply a smooth alogrithm with the specified algorithm cv.MEDIANcv.ShowImage(Smoothed, smoothed) # 均衡处理cv.EqualizeHist(grey, grey) #Work only on grayscaled picturescv.ShowImage(Equalized, grey) # 二值化处理threshold1 = cv.CloneImage(grey)cv.Threshold(threshold1,threshold1, 100, 255, cv.CV_THR……

<
1
>

Copyright 2018-2020 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com