在 Python 中为 OpenCV BoundryBox 设置自定义 RoI

Setting Custom RoI for OpenCV BoundryBox in Python

我正在尝试使用 OpenCV 实现对象跟踪器,我是 Python 的新手。我将通过 IronPython 从 C# 代码调用它。我想做的是,我想将自定义矩形设置为 Tracker 的参数,而不是通过鼠标选择它。

(跟踪器代码是您可以在互联网上找到的常见示例)

这里是有问题的部分:

这就是我设置和创建矩形的方式

    initBB = cv2.rectangle(frame ,(154, 278),(173,183), (0, 255, 00),1)

这是Tracker的初始化方法

tracker.init(frame, initBB)

这就是错误

SystemError: new style getargs format but argument is not a tuple

如果我想使用 "normal" 方式,initBB 设置会像

        initBB = cv2.selectROI("Frame", frame, fromCenter=False,
        showCrosshair=False)

我看不出哪一部分做错了,我是在尝试将错误类型的对象设置为 initBB 还是以错误的方式设置它?

谢谢!祝你有美好的一天!

你的错误来自于对 cv2.rectangle 所做的事情的误解。

它并不是您想象的 return 矩形。它实际上是一个绘图功能。它在您作为参数和 returns None.

传递的图像上绘制矩形

矩形只是 Python 中的一个元组,坐标如下:(start_col, start_row, width, height)。您可以在不使用 OpenCV 函数的情况下创建它。