python-3.x - OpenCV,如何将参数传递给 cv2.TrackerMedianFlow_create 函数?

标签 python-3.x opencv image-processing opencv3.3

我正在尝试使用带有 Python3.6 的 opencv-python 使用 OpenCV3.3 创建 MEDIANFLOW 跟踪器。根据 OpenCV docs 的这一页,我需要将一些参数传递给构造函数.

问题是我不知道如何正确地将可用参数传递给这个函数?我找不到有关它的任何信息。

我所做的(并且有效):

tracker = cv2.TrackerMedianFlow_create()

我想做的事情:

tracker = cv2.TrackerMedianFlow_create(maxLevel=3)

但它不起作用并给我一个错误:

SystemError: <built-in function TrackerMedianFlow_create> returned NULL without setting an error

你能帮忙吗?

最佳答案

我在为Python 3.5编译OpenCV 3.3时搜索cmake/make生成的中间代码,就是找不到设置cv2.TrackerXXX参数的方法。

modules/python3/pyopencv_generated_funcs.h 中,我找到了这个函数:

static PyObject* pyopencv_cv_TrackerMedianFlow_create(PyObject* , PyObject* args, PyObject* kw)
{
    using namespace cv;

    Ptr<TrackerMedianFlow> retval;

    if(PyObject_Size(args) == 0 && (kw == NULL || PyObject_Size(kw) == 0))
    {
        ERRWRAP2(retval = cv::TrackerMedianFlow::create());
        return pyopencv_from(retval);
    }

    return NULL;
}

也就是说,您不能将任何参数传递给cv::TrackerMedianFlow_create()

modules/python3/pyopencv_generated_types.h 中,我找到了这个:

static PyGetSetDef pyopencv_TrackerMedianFlow_getseters[] =
{
    {NULL}  /* Sentinel */
};

也就是说,默认情况下,您无法更改 Python 包装器的参数,除非您修改源代码并重新编译。

关于python-3.x - OpenCV,如何将参数传递给 cv2.TrackerMedianFlow_create 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47723349/

相关文章:

python - OpenCV findContours仅间歇性地工作

python - Opencv无法获得最高强度部分的ROI

image-processing - 如何将 EMNIST 数据加载到 Tensorflow

python - 如何实时读取html并循环插入MySQL?

python - 如何检测图像是否被部分遮挡?

python - 如何在 Python 中提高 OpenCV 匹配结果的准确性

image-processing - 彩色边缘检测+opencv

python - 如何在 python 中将 xml 文件转换为 csv 输出?

python - Z3python 异或和?

使用 psutil 的 Python 程序运行 8 小时后失败,并出现 PermissionError : [WinError 5] Access is denied - why?