fixed 2 build problems on MacOSX (highgui with ffmpeg, opencv_world); added macro CV_INIT_ALGORITHM for simpler algorithm registration (ticket #1876)
This commit is contained in:
@@ -47,72 +47,24 @@ namespace cv
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static Algorithm* createMOG()
|
||||
{
|
||||
return new BackgroundSubtractorMOG;
|
||||
}
|
||||
|
||||
static AlgorithmInfo& mog_info()
|
||||
{
|
||||
static AlgorithmInfo mog_info_var("BackgroundSubtractor.MOG", createMOG);
|
||||
return mog_info_var;
|
||||
}
|
||||
|
||||
static AlgorithmInfo& mog_info_auto = mog_info();
|
||||
|
||||
AlgorithmInfo* BackgroundSubtractorMOG::info() const
|
||||
{
|
||||
static volatile bool initialized = false;
|
||||
if( !initialized )
|
||||
{
|
||||
BackgroundSubtractorMOG obj;
|
||||
|
||||
mog_info().addParam(obj, "history", obj.history);
|
||||
mog_info().addParam(obj, "nmixtures", obj.nmixtures);
|
||||
mog_info().addParam(obj, "backgroundRatio", obj.backgroundRatio);
|
||||
mog_info().addParam(obj, "noiseSigma", obj.noiseSigma);
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
return &mog_info();
|
||||
}
|
||||
CV_INIT_ALGORITHM(BackgroundSubtractorMOG, "BackgroundSubtractor.MOG",
|
||||
obj.info()->addParam(obj, "history", obj.history);
|
||||
obj.info()->addParam(obj, "nmixtures", obj.nmixtures);
|
||||
obj.info()->addParam(obj, "backgroundRatio", obj.backgroundRatio);
|
||||
obj.info()->addParam(obj, "noiseSigma", obj.noiseSigma));
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static Algorithm* createMOG2()
|
||||
{
|
||||
return new BackgroundSubtractorMOG2;
|
||||
}
|
||||
|
||||
static AlgorithmInfo& mog2_info()
|
||||
{
|
||||
static AlgorithmInfo mog2_info_var("BackgroundSubtractor.MOG2", createMOG2);
|
||||
return mog2_info_var;
|
||||
}
|
||||
|
||||
static AlgorithmInfo& mog2_info_auto = mog2_info();
|
||||
|
||||
AlgorithmInfo* BackgroundSubtractorMOG2::info() const
|
||||
{
|
||||
static volatile bool initialized = false;
|
||||
if( !initialized )
|
||||
{
|
||||
BackgroundSubtractorMOG2 obj;
|
||||
|
||||
mog2_info().addParam(obj, "history", obj.history);
|
||||
mog2_info().addParam(obj, "varThreshold", obj.varThreshold);
|
||||
mog2_info().addParam(obj, "detectShadows", obj.bShadowDetection);
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
return &mog2_info();
|
||||
}
|
||||
CV_INIT_ALGORITHM(BackgroundSubtractorMOG2, "BackgroundSubtractor.MOG2",
|
||||
obj.info()->addParam(obj, "history", obj.history);
|
||||
obj.info()->addParam(obj, "varThreshold", obj.varThreshold);
|
||||
obj.info()->addParam(obj, "detectShadows", obj.bShadowDetection));
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
bool initModule_video(void)
|
||||
{
|
||||
Ptr<Algorithm> mog = createMOG(), mog2 = createMOG2();
|
||||
Ptr<Algorithm> mog = createBackgroundSubtractorMOG(), mog2 = createBackgroundSubtractorMOG2();
|
||||
return mog->info() != 0 && mog2->info() != 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user