写一个python目标追踪函数
时间: 2024-04-29 10:21:26 浏览: 98
下面是一个简单的 Python 目标追踪函数,它可以通过检测视频中的运动物体并跟踪它们来实现目标追踪。
```python
import cv2
# 初始化视频捕捉对象
cap = cv2.VideoCapture(0)
# 定义背景减除器
fgbg = cv2.createBackgroundSubtractorMOG2()
while True:
# 读取视频帧
ret, frame = cap.read()
# 应用背景减除器
fgmask = fgbg.apply(frame)
# 进行形态学操作以去除噪声
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3))
fgmask = cv2.morphologyEx(fgmask, cv2.MORPH_OPEN, kernel)
# 查找轮廓
contours, hierarchy = cv2.findContours(fgmask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 绘制矩形框来标识物体位置
for contour in contours:
if cv2.contourArea(contour) < 500:
continue
(x, y, w, h) = cv2.boundingRect(contour)
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
# 显示视频帧
cv2.imshow('frame', frame)
# 按下 q 键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放视频捕捉对象
cap.release()
# 关闭所有窗口
cv2.destroyAllWindows()
```
这段代码使用 OpenCV 库中的 `createBackgroundSubtractorMOG2()` 函数创建了一个背景减除器对象,用于检测视频中的运动物体。然后,它对每个视频帧应用背景减除器,并执行形态学操作以去除噪声。接下来,它查找轮廓并绘制矩形框来标识物体位置。最后,它显示视频帧,并在按下 q 键时退出循环。
阅读全文