首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法从opencv对象跟踪器kcf中提取cv2.rectangle的坐标?

从opencv对象跟踪器KCF中提取cv2.rectangle的坐标的方法如下:

  1. 首先,使用OpenCV库中的cv2对象创建一个KCF对象跟踪器。
  2. 使用KCF对象的init()方法初始化跟踪器,并传入待跟踪的图像和初始边界框的坐标。
  3. 在每一帧中,使用KCF对象的update()方法更新跟踪器,并传入当前帧的图像。
  4. 使用KCF对象的get_position()方法获取当前边界框的坐标。
  5. 使用cv2.rectangle()函数绘制边界框,传入当前帧的图像、边界框的左上角坐标和右下角坐标,以及绘制的颜色和线宽。
  6. 使用cv2.imshow()函数显示带有边界框的图像。

以下是一个示例代码:

代码语言:txt
复制
import cv2

# 创建KCF对象跟踪器
tracker = cv2.TrackerKCF_create()

# 读取视频或摄像头的第一帧
video = cv2.VideoCapture(0)
ret, frame = video.read()

# 初始化跟踪器
bbox = cv2.selectROI(frame, False)
tracker.init(frame, bbox)

while True:
    # 读取当前帧
    ret, frame = video.read()
    
    # 更新跟踪器
    success, bbox = tracker.update(frame)
    
    if success:
        # 提取边界框的坐标
        x, y, w, h = int(bbox[0]), int(bbox[1]), int(bbox[2]), int(bbox[3])
        
        # 绘制边界框
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
    
    # 显示带有边界框的图像
    cv2.imshow("Tracking", frame)
    
    # 按下ESC键退出循环
    if cv2.waitKey(1) == 27:
        break

# 释放视频或摄像头资源
video.release()
cv2.destroyAllWindows()

在上述代码中,我们使用了cv2.selectROI()函数来手动选择初始边界框。你也可以根据实际需求自行修改代码。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券