opencv python目标跟踪代码
时间: 2023-10-30 16:02:59 浏览: 81
object-tracking.zip
以下是使用 OpenCV 和 Python 实现的目标跟踪代码示例:
```
import cv2
# 读取视频文件
cap = cv2.VideoCapture("video.mp4")
# 创建跟踪器对象
tracker = cv2.TrackerCSRT_create()
# 读取第一帧
success, frame = cap.read()
# 选择跟踪区域
bbox = cv2.selectROI("Tracking", frame, False)
# 初始化跟踪器
tracker.init(frame, bbox)
while True:
# 读取当前帧
success, frame = cap.read()
if not success:
break
# 更新跟踪器
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:
cv2.putText(frame, "Tracking failed!", (100, 80), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
# 显示当前帧
cv2.imshow("Tracking", frame)
# 退出条件
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
```
在这个示例中,我们使用 `cv2.VideoCapture` 读取视频文件,并使用 `cv2.selectROI` 选择了跟踪区域。然后,我们使用 `cv2.TrackerCSRT_create` 创建了一个 CSRT 跟踪器对象,并使用 `tracker.init` 初始化了跟踪器。在每个循环中,我们都使用 `tracker.update` 更新跟踪器,并使用 `cv2.rectangle` 绘制跟踪结果。最后,我们使用 `cv2.imshow` 显示当前帧,直到用户按下 'q' 键退出程序。
阅读全文