OpenCV library version 2.42. I'd like to set a parameter in BackgroundSubtractorMOG2
object, e.g.
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);
backgroundRatio
and fVarMin
are parameters that control the algorithm. User should be able to change these parameters according to the documentation.
How can I set the parameters of BackgroundSubtractorMOG2
?
EDIT As correctly mentioned in the answer below, this was a bug in OpenCV. The bug was fixed in OpenCV version 2.4.6.
nmixtures
and other parameters used to be public but it was changed in version 2.4. – Chairmanship