opencv4.7.0 TrackerMIL 类的相关实现案例
时间: 2024-06-12 09:04:59 浏览: 115
opencv-4.7.0源代码包
以下是一个简单的跟踪实现案例,使用了OpenCV 4.7.0中的TrackerMIL类:
```python
import cv2
# 创建TrackerMIL对象
tracker = cv2.TrackerMIL_create()
# 读取视频文件
video = cv2.VideoCapture('test.mp4')
# 选择跟踪目标
ok, frame = video.read()
bbox = cv2.selectROI(frame, False)
tracker.init(frame, bbox)
while True:
# 读取视频帧
ok, frame = video.read()
if not ok:
break
# 跟踪目标
ok, bbox = tracker.update(frame)
if ok:
# 目标被成功跟踪
x, y, w, h = [int(i) for i in bbox]
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2, 1)
else:
# 目标跟踪失败
cv2.putText(frame, "Tracking failure detected", (100, 80), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2)
# 显示视频帧
cv2.imshow("Tracking", frame)
# 按下ESC键退出
if cv2.waitKey(1) == 27:
break
# 释放资源
video.release()
cv2.destroyAllWindows()
```
在这个实现案例中,我们首先创建了一个TrackerMIL对象,并从视频文件中读取了一帧作为初始帧。然后,我们使用cv2.selectROI函数选择跟踪目标,并使用tracker.init方法初始化跟踪器。在主循环中,我们读取视频帧并使用tracker.update方法跟踪目标。如果跟踪成功,我们使用cv2.rectangle函数绘制目标的边界框;否则,我们使用cv2.putText函数在视频帧上显示“Tracking failure detected”信息。最后,我们使用cv2.imshow函数显示视频帧,并按下ESC键退出循环。
阅读全文