opencv python 如何实现对视频里物体的跟踪
时间: 2023-06-08 16:05:14 浏览: 109
您好,关于 opencv python 实现对视频里物体的跟踪,可以使用 OpenCV 的多个跟踪器算法,如 Boosting、MIL、KCF、TLD 等。以下是一个简单的例子,使用 KCF 算法跟踪视频中的物体:
```python
import cv2
# 创建 KCF 跟踪器
tracker = cv2.TrackerKCF_create()
# 打开视频
video = cv2.VideoCapture('video.mp4')
# 读取第一帧
ret, frame = video.read()
# 选择要跟踪的物体位置
bbox = cv2.selectROI(frame, False)
# 初始化跟踪器
tracker.init(frame, bbox)
while True:
# 读取视频帧
ret, frame = video.read()
# 跟踪物体
success, bbox = tracker.update(frame)
# 如果成功跟踪到物体
if success:
# 绘制跟踪框
x, y, w, h = [int(i) for i in bbox]
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
else:
# 跟踪失败,重新选择物体位置,重新初始化跟踪器
bbox = cv2.selectROI(frame, False)
tracker.init(frame, bbox)
# 显示视频帧
cv2.imshow('Object Tracker', frame)
# 等待按键操作
if cv2.waitKey(1) == 27:
break
# 释放资源
video.release()
cv2.destroyAllWindows()
```
您可以根据实际情况选择不同的跟踪器算法,或组合多个跟踪器以提高准确率和稳定性。希望能对您有所帮助!
阅读全文