import cv2
# 创建一个CSRT跟踪器实例
tracker = cv2.TrackerCSRT_create()
# 跟踪标志,默认为False
tracking = False
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret:
break
# 检査是否有按键被按下,如果是'a'键:则设置跟踪标志为True:并选ROI
if cv2.waitKey(100) == ord('a'):
tracking = True
# 让用户在当前帧中选择一个矩形区域作为要跟踪的对象
roi = cv2.selectROI('Tracking', frame, showCrosshair=False) # 是否显示十字准星
# 初始化跟踪器,传入当前帧和选定的ROI
tracker.init(frame, roi)
# 如果跟踪标志为True,则更新跟踪器
if tracking:
success, box = tracker.update(frame)
# 如果跟踪成功,获取对象的位置
if success:
x, y, w, h = [int(v) for v in box] # 确保所有坐标都是整数
# 在frame上绘制矩形框以显示跟踪结果
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
# 显示处理后的帧
cv2.imshow('Tracking', frame)
# 检查是否按下ESC键(ASCII码27),如果按下则退出循环
if cv2.waitKey(100) == 27:
break
# 释放摄像头赟源
cap.release()
# 关闭所有openCV创建的窗口
cv2.destroyAllWindows()
机器学习:opencv--tracker跟踪器
猜你喜欢
转载自blog.csdn.net/weixin_65047977/article/details/142930756
今日推荐
周排行