基于tracker和python的物体追踪画圆
时间: 2023-09-03 20:16:32 浏览: 121
以下是基于tracker和Python的物体追踪画圆的代码示例:
```python
import cv2
# 创建一个VideoCapture对象
cap = cv2.VideoCapture(0)
# 创建一个Tracker对象
tracker = cv2.TrackerCSRT_create()
# 读取第一帧图像
ret, frame = cap.read()
# 选择需要追踪的物体
bbox = cv2.selectROI("Tracking", frame, False)
# 初始化tracker
tracker.init(frame, bbox)
# 设置圆的颜色和线宽
circle_color = (0, 255, 0)
circle_thickness = 2
while True:
# 读取视频流中的每一帧
ret, frame = cap.read()
# 更新tracker
success, bbox = tracker.update(frame)
# 如果追踪成功,画出追踪框和圆
if success:
# 将bbox转换成整数
bbox = tuple(map(int, bbox))
# 获取追踪框的中心坐标
center_x = int(bbox[0] + bbox[2] / 2)
center_y = int(bbox[1] + bbox[3] / 2)
# 画出追踪框
cv2.rectangle(frame, bbox, (0, 255, 0), 2)
# 画出圆
cv2.circle(frame, (center_x, center_y), 20, circle_color, circle_thickness)
# 显示视频流
cv2.imshow("Tracking", frame)
# 按下q键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
```
运行这段代码,你会看到一个名为“Tracking”的窗口,它会显示摄像头捕捉到的视频流。你可以使用鼠标选择需要追踪的物体,程序将在追踪过程中画出方框和圆。按下q键退出循环。
阅读全文