python+opencv实现动态物体追踪

yipeiwu_com7年前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中ASCII码字符与int之间的转换方法

ASCII码转换为int:ord('A') 65 int转为ASCII码:chr(65) 'A' 题目内容: 实现一个凯撒密码的变种算法,对输入字符串进行加解密处理 把字母a-z分别循环...

浅析PHP与Python进行数据交互

最近,决定在一个项目用tp5进行APP接口开发,用Python做数据分析,然后这就面临一个问题:PHP和Python如何进行数据交互? 思路 我解决此问题的方法是利用了PHP的pas...

Python 移动光标位置的方法

如下所示: x = file('1.txt','r') print x.tell() #显示当前光标位置 x.seek(3) print x.tell() #没有设置光标位置,...

flask中使用蓝图将路由分开写在不同文件实例解析

flask中使用蓝图将路由分开写在不同文件实例解析

本文的内容主要是flask中使用蓝图将路由分开写在不同文件的相关介绍,具体如下。 Flask 用 蓝图(blueprints) 的概念来在一个应用中或跨应用制作应用组件和支持通用的模式。...

python3+PyQt5重新实现QT事件处理程序

python3+PyQt5重新实现QT事件处理程序

本文是对《Python Qt GUI快速编程》的第10章的例子events用Python3+PyQt5进行改写,涉及到重新实现QWidget的事件处理程序。本例子涉及到上下文菜单,鼠标事...