帮我写一份基于OpenCV的目标追踪代码
时间: 2024-01-23 14:02:54 浏览: 85
好的,以下是一个基于OpenCV的目标追踪代码示例,使用的是CSRT算法:
```python
import cv2
# 加载视频文件或摄像头
cap = cv2.VideoCapture("test.mp4")
# 创建CSRT tracker对象
tracker = cv2.TrackerCSRT_create()
# 读取第一帧
ret, frame = cap.read()
# 选择要跟踪的区域
bbox = cv2.selectROI("Frame", frame, False)
# 初始化tracker
tracker.init(frame, bbox)
while True:
# 读取一帧
ret, frame = cap.read()
# 检测是否读取到了视频的最后一帧
if not ret:
break
# 更新tracker
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, 1)
# 显示跟踪结果
cv2.imshow("Frame", frame)
# 按Q键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
```
这个代码会加载一个视频文件或启动摄像头,使用鼠标框选一个区域作为跟踪目标,然后使用CSRT算法对目标进行跟踪,并在每一帧中绘制跟踪框。按下Q键退出程序。
阅读全文