gpt4 book ai didi

c++ - 无法在 BackgroundSubtractorMOG2 中设置用户参数

转载 作者:可可西里 更新时间:2023-11-01 18:16:18 27 4
gpt4 key购买 nike

OpenCV 库版本 2.42。我想在 BackgroundSubtractorMOG2 对象中设置一个参数,例如

BackgroundSubtractorMOG2 bgr;  

// the following doesn't work because 'nmixtures', 'backgroundRatio'
// and 'fVarMin' are a protected members.
bgr.nmixtures = 3;
bgr.backgroundRatio = 0.9;
bgr.fVarMin = 5;

// the following works
bgr.set('nmixtures', 3);

// both of the following lines will give a run-time error
// `Access violation reading location 0x0000000000000008.`
bgr.set("backgroundRatio", 0.9);
bgr.set("fVarMin", 5);

backgroundRatiofVarMin 是控制算法的参数。用户应该能够根据 documentation 更改这些参数.

如何设置BackgroundSubtractorMOG2的参数?

编辑 正如下面的答案中正确提到的那样,这是 OpenCV 中的一个错误。该错误已在 OpenCV 2.4.6 版中修复。

最佳答案

我刚刚查看了 OpenCV 源代码并在文件 /modules/video/src/video_init.cpp 中发现了有趣的初始化。在这里:

CV_INIT_ALGORITHM(BackgroundSubtractorMOG2, "BackgroundSubtractor.MOG2",
obj.info()->addParam(obj, "history", obj.history);
obj.info()->addParam(obj, "nmixtures", obj.nmixtures);
obj.info()->addParam(obj, "varThreshold", obj.varThreshold);
obj.info()->addParam(obj, "detectShadows", obj.bShadowDetection));

似乎可以使用 set 方法只设置这四个参数。

同时查看文件 modules/video/src/bgfg_gaussmix2.cpp,它有一个 BackgroundSubtractorMOG2 类。它具有以下字段:

float fVarInit;
float fVarMax;
float fVarMin;
//initial standard deviation for the newly generated components.
//It will will influence the speed of adaptation. A good guess should be made.
//A simple way is to estimate the typical standard deviation from the images.
//I used here 10 as a reasonable value

并且值 fVarMin(您要更改)设置为:

fVarMin = defaultVarMin2

在两个构造函数中。以下是所有这些:

static const float defaultVarInit2 = 15.0f; // initial variance for new components
static const float defaultVarMax2 = 5*defaultVarInit2;
static const float defaultVarMin2 = 4.0f;

有趣的是这个值没有在任何其他文件中使用,所以现在似乎不可能改变它。您可以将此问题直接发布到 OpenCV bugtracker .

关于c++ - 无法在 BackgroundSubtractorMOG2 中设置用户参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12861047/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com