python移动物体识别及跟踪代码
时间: 2023-12-25 13:29:53 浏览: 121
python+opencv实现动态物体识别
以下是使用OpenCV库实现物体识别及跟踪的Python代码示例:
```
import cv2
# 初始化视频捕捉设备
cap = cv2.VideoCapture(0)
# 定义跟踪器类型和初始跟踪对象位置
tracker_type = "KCF"
bbox = (0, 0, 0, 0) # (x, y, w, h)
# 创建跟踪器
if tracker_type == "BOOSTING":
tracker = cv2.TrackerBoosting_create()
elif tracker_type == "MIL":
tracker = cv2.TrackerMIL_create()
elif tracker_type == "KCF":
tracker = cv2.TrackerKCF_create()
elif tracker_type == "TLD":
tracker = cv2.TrackerTLD_create()
else:
tracker = None
# 读取第一帧图像
ret, frame = cap.read()
# 选择跟踪对象
bbox = cv2.selectROI(frame, False)
# 初始化跟踪器
tracker.init(frame, bbox)
while True:
# 读取视频帧
ret, frame = cap.read()
# 跟踪对象
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)
else:
cv2.putText(frame, "Tracking failed!", (100, 80), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2)
# 显示图像
cv2.imshow("Object Tracking", frame)
# 按下ESC键退出
if cv2.waitKey(1) == 27:
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
```
这段代码使用OpenCV库中的各种跟踪器来追踪摄像头中的物体。首先,它初始化视频捕捉设备并选择跟踪对象。然后,它使用选择的跟踪器和初始位置开始跟踪。在每一帧中,它会更新跟踪器并绘制跟踪框。最后,按下ESC键退出程序。
阅读全文