【问题标题】:How to use cv2.ellipse in Google Colab?如何在 Google Colab 中使用 cv2.ellipse?
【发布时间】:2020-08-27 07:07:51
【问题描述】:

我正在尝试进行对象跟踪,并且听说椭圆边界框比通常的矩形框要好。所以我试着做一个。

这是我使用的代码:

cv2.ellipse(frame, [np.int0(location).reshape((-1, 1, 2))], True, (0, 255, 0), 3)

这是该代码的结果

an integer is required (got type tuple)

制作边界框的完整代码

state = siamese_track(state, frame, mask_enable=True, refine_enable=True, device=device)
  location = state['ploygon'].flatten()
  mask = state['mask'] > state['p'].seg_thr

  frame[:, :, 2] = (mask > 0) * 255 + (mask == 0) * frame[:, :, 2]
  cv2.ellipse(frame, [np.int0(location).reshape((-1, 1, 2))], True, (0, 255, 0), 3)

如果我使用 cv2.polyline 效果很好,我需要先输入数学公式还是我遗漏了什么?

【问题讨论】:

    标签: python opencv bounding-box


    【解决方案1】:

    这里是documentation for cv2.ellipse。看起来这个函数在参数的任何地方都不接受布尔值。尝试明确指定函数的输入,例如 cv2.ellipse(img = frame, ...)。

    该错误消息告诉您,在函数调用的某个地方,您正在给它一个元组,它需要一个按参数顺序排列的整数。这必须是第二个或第四个参数。

    【讨论】:

    • 我仍然很困惑我应该如何获得中心、轴、角度、startAngle、endAngle,因为我想要它椭圆会在对象移动时移动并重塑自身,我还添加了完整的代码。
    • cv.EllipseBox(img, box, color) 获取图像、RotatedRect 和颜色。您需要做的就是找到移动对象的边界 RotatedRect
    • 它不起作用,我不知道为什么,但是 cv.EllipseBox 不能在 Colab 中使用。所以我一直在考虑使用数学公式 20*cos(radians(frame)) 和 10*sin(radians(frame)。但我无法弄清楚。我该如何放置位置。
    猜你喜欢
    • 1970-01-01
    • 2022-10-20
    • 2019-11-27
    • 2021-12-15
    • 2021-05-03
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    • 2021-02-16
    相关资源
    最近更新 更多