python+opencv实现动态物体追踪

yipeiwu_com5年前Python基础

简单几行就可以实现对动态物体的追踪,足见opencv在图像处理上的强大。

python代码:

import cv2 
import numpy as np 
camera=cv2.VideoCapture(0) 
firstframe=None 
while True: 
  ret,frame = camera.read() 
  if not ret: 
    break 
  gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) 
  gray=cv2.GaussianBlur(gray,(21,21),0) 
  if firstframe is None: 
    firstframe=gray 
    continue 
   
  frameDelta = cv2.absdiff(firstframe,gray) 
  thresh = cv2.threshold(frameDelta, 25, 255, cv2.THRESH_BINARY)[1] 
  thresh = cv2.dilate(thresh, None, iterations=2) 
  # cnts= cv2.findContours(thresh.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE) 
   
  x,y,w,h=cv2.boundingRect(thresh) 
  frame=cv2.rectangle(frame,(x,y),(x+w,y+h),(0,0,255),2) 
  cv2.imshow("frame", frame) 
  cv2.imshow("Thresh", thresh) 
  cv2.imshow("frame2", frameDelta) 
  key = cv2.waitKey(1)&0xFF 
   
  if key == ord("q"): 
    break 
 
camera.release() 
cv2.destroyAllWindows() 

效果图


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Flask实现跨域请求的处理方法

在Flask开发RESTful后端时,前端请求会遇到跨域的问题。下面是解决方法: 使用 flask-cors库可以很容易的解决 pip install flask-cors 两种方...

详解python配置虚拟环境

详解python配置虚拟环境

python中通过虚拟化出来一个空间,与主环境完全隔离,避免项目中对于环境要求,造成的插件版本混乱(python特别吃环境) mac 的配置 前文已经说过python3的安装,我们基本在...

python里dict变成list实例方法

python里dict(字典)怎么变成list(列表)? 说明:列表不可以转换为字典 1、转换后的列表为无序列表 a = {'a' : 1, 'b': 2, 'c' : 3}...

用python实现英文字母和相应序数转换的方法

第一步:字母转数字 英文字母转对应数字相对简单,可以在命令行输入一行需要转换的英文字母,然后对每一个字母在整个字母表中匹配,并返回相应的位数,然后累加这些位数即可。过程中,为了使结果更...

python 类的继承 实例方法.静态方法.类方法的代码解析

这篇文章主要介绍了python 类的继承 实例方法.静态方法.类方法的代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 dt...