python+opencv实现动态物体追踪

yipeiwu_com6年前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设计】。

相关文章

Python及PyCharm下载与安装教程

Python及PyCharm下载与安装教程

一、简介 Python:英 -[‘paɪθ ə n]或[‘paɪθɑn] 89年诞生 可用于软件开发: 游戏后台、搜索、图形界面,网站,C\S(Client...

python解决js文件utf-8编码乱码问题(推荐)

html文件中引入js文件,显示乱码! js文件为utf-8 编码(无bom)  ,此时只要将js文件转成utf-8 BOM编码就可以解决了 可以使用notepad++转码 也...

Python实现繁体中文与简体中文相互转换的方法示例

本文实例讲述了Python实现繁体中文与简体中文相互转换的方法。分享给大家供大家参考,具体如下: 工作中需要将繁体中文转换成简体中文 上网找了些资料,发现这个包最方便:https://g...

Python实例一个类背后发生了什么

首先来看一个例子,正常情况下我们定义并且实例一个类如下 class Foo(object): def __init__(self): pass obj = Foo...

python matplotlib拟合直线的实现

python matplotlib拟合直线的实现

这篇文章主要介绍了python matplotlib拟合直线的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 imp...