Skip to content

Commit 07e0f7b

Browse files
committed
refactored video module; use the new-style algorithms now
1 parent 14a0abb commit 07e0f7b

28 files changed

Lines changed: 1062 additions & 2219 deletions

modules/contrib/src/facerec.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -893,7 +893,7 @@ CV_INIT_ALGORITHM(LBPH, "FaceRecognizer.LBPH",
893893

894894
bool initModule_contrib()
895895
{
896-
Ptr<Algorithm> efaces = createEigenfaces(), ffaces = createFisherfaces(), lbph = createLBPH();
896+
Ptr<Algorithm> efaces = createEigenfaces_hidden(), ffaces = createFisherfaces_hidden(), lbph = createLBPH_hidden();
897897
return efaces->info() != 0 && ffaces->info() != 0 && lbph->info() != 0;
898898
}
899899

modules/core/include/opencv2/core/internal.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,14 +254,14 @@ namespace cv
254254
} //namespace cv
255255

256256
#define CV_INIT_ALGORITHM(classname, algname, memberinit) \
257-
static ::cv::Algorithm* create##classname() \
257+
static ::cv::Algorithm* create##classname##_hidden() \
258258
{ \
259259
return new classname; \
260260
} \
261261
\
262262
static ::cv::AlgorithmInfo& classname##_info() \
263263
{ \
264-
static ::cv::AlgorithmInfo classname##_info_var(algname, create##classname); \
264+
static ::cv::AlgorithmInfo classname##_info_var(algname, create##classname##_hidden); \
265265
return classname##_info_var; \
266266
} \
267267
\

modules/gpu/perf/perf_video.cpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -614,10 +614,10 @@ PERF_TEST_P(Video_Cn_LearningRate, Video_MOG,
614614
}
615615
else
616616
{
617-
cv::BackgroundSubtractorMOG mog;
617+
cv::Ptr<cv::BackgroundSubtractor> mog = cv::createBackgroundSubtractorMOG();
618618
cv::Mat foreground;
619619

620-
mog(frame, foreground, learningRate);
620+
mog->apply(frame, foreground, learningRate);
621621

622622
for (int i = 0; i < 10; ++i)
623623
{
@@ -635,7 +635,7 @@ PERF_TEST_P(Video_Cn_LearningRate, Video_MOG,
635635
}
636636

637637
startTimer(); next();
638-
mog(frame, foreground, learningRate);
638+
mog->apply(frame, foreground, learningRate);
639639
stopTimer();
640640
}
641641

@@ -709,12 +709,12 @@ PERF_TEST_P(Video_Cn, Video_MOG2,
709709
}
710710
else
711711
{
712-
cv::BackgroundSubtractorMOG2 mog2;
713-
mog2.set("detectShadows", false);
712+
cv::Ptr<cv::BackgroundSubtractor> mog2 = cv::createBackgroundSubtractorMOG2();
713+
mog2->set("detectShadows", false);
714714

715715
cv::Mat foreground;
716716

717-
mog2(frame, foreground);
717+
mog2->apply(frame, foreground);
718718

719719
for (int i = 0; i < 10; ++i)
720720
{
@@ -732,7 +732,7 @@ PERF_TEST_P(Video_Cn, Video_MOG2,
732732
}
733733

734734
startTimer(); next();
735-
mog2(frame, foreground);
735+
mog2->apply(frame, foreground);
736736
stopTimer();
737737
}
738738

@@ -789,7 +789,7 @@ PERF_TEST_P(Video_Cn, Video_MOG2GetBackgroundImage,
789789
}
790790
else
791791
{
792-
cv::BackgroundSubtractorMOG2 mog2;
792+
cv::Ptr<cv::BackgroundSubtractor> mog2 = cv::createBackgroundSubtractorMOG2();
793793
cv::Mat foreground;
794794

795795
for (int i = 0; i < 10; ++i)
@@ -807,12 +807,12 @@ PERF_TEST_P(Video_Cn, Video_MOG2GetBackgroundImage,
807807
cv::swap(temp, frame);
808808
}
809809

810-
mog2(frame, foreground);
810+
mog2->apply(frame, foreground);
811811
}
812812

813813
cv::Mat background;
814814

815-
TEST_CYCLE() mog2.getBackgroundImage(background);
815+
TEST_CYCLE() mog2->getBackgroundImage(background);
816816

817817
CPU_SANITY_CHECK(background);
818818
}
@@ -958,11 +958,11 @@ PERF_TEST_P(Video_Cn_MaxFeatures, Video_GMG,
958958
cv::Mat foreground;
959959
cv::Mat zeros(frame.size(), CV_8UC1, cv::Scalar::all(0));
960960

961-
cv::BackgroundSubtractorGMG gmg;
962-
gmg.set("maxFeatures", maxFeatures);
963-
gmg.initialize(frame.size(), 0.0, 255.0);
961+
cv::Ptr<cv::BackgroundSubtractor> gmg = cv::createBackgroundSubtractorGMG();
962+
gmg->set("maxFeatures", maxFeatures);
963+
//gmg.initialize(frame.size(), 0.0, 255.0);
964964

965-
gmg(frame, foreground);
965+
gmg->apply(frame, foreground);
966966

967967
for (int i = 0; i < 150; ++i)
968968
{
@@ -985,7 +985,7 @@ PERF_TEST_P(Video_Cn_MaxFeatures, Video_GMG,
985985
}
986986

987987
startTimer(); next();
988-
gmg(frame, foreground);
988+
gmg->apply(frame, foreground);
989989
stopTimer();
990990
}
991991

modules/gpu/test/test_bgfg.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -245,8 +245,8 @@ GPU_TEST_P(MOG2, Update)
245245
mog2.bShadowDetection = detectShadow;
246246
cv::gpu::GpuMat foreground = createMat(frame.size(), CV_8UC1, useRoi);
247247

248-
cv::BackgroundSubtractorMOG2 mog2_gold;
249-
mog2_gold.set("detectShadows", detectShadow);
248+
cv::Ptr<cv::BackgroundSubtractorMOG2> mog2_gold = cv::createBackgroundSubtractorMOG2();
249+
mog2_gold.setDetectShadows(detectShadow);
250250
cv::Mat foreground_gold;
251251

252252
for (int i = 0; i < 10; ++i)
@@ -263,7 +263,7 @@ GPU_TEST_P(MOG2, Update)
263263

264264
mog2(loadMat(frame, useRoi), foreground);
265265

266-
mog2_gold(frame, foreground_gold);
266+
mog2_gold->apply(frame, foreground_gold);
267267

268268
if (detectShadow)
269269
{
@@ -290,8 +290,8 @@ GPU_TEST_P(MOG2, getBackgroundImage)
290290
mog2.bShadowDetection = detectShadow;
291291
cv::gpu::GpuMat foreground;
292292

293-
cv::BackgroundSubtractorMOG2 mog2_gold;
294-
mog2_gold.set("detectShadows", detectShadow);
293+
cv::Ptr<cv::BackgroundSubtractorMOG2> mog2_gold = cv::createBackgroundSubtractorMOG2();
294+
mog2_gold.setDetectShadows(detectShadow);
295295
cv::Mat foreground_gold;
296296

297297
for (int i = 0; i < 10; ++i)
@@ -301,14 +301,14 @@ GPU_TEST_P(MOG2, getBackgroundImage)
301301

302302
mog2(loadMat(frame, useRoi), foreground);
303303

304-
mog2_gold(frame, foreground_gold);
304+
mog2_gold->apply(frame, foreground_gold);
305305
}
306306

307307
cv::gpu::GpuMat background = createMat(frame.size(), frame.type(), useRoi);
308308
mog2.getBackgroundImage(background);
309309

310310
cv::Mat background_gold;
311-
mog2_gold.getBackgroundImage(background_gold);
311+
mog2_gold->getBackgroundImage(background_gold);
312312

313313
ASSERT_MAT_NEAR(background_gold, background, 0);
314314
}

modules/legacy/src/bgfg_gaussmix.cpp

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ icvReleaseGaussianBGModel( CvGaussBGModel** bg_model )
5050

5151
if( *bg_model )
5252
{
53-
delete (cv::BackgroundSubtractorMOG*)((*bg_model)->mog);
53+
delete (cv::Ptr<cv::BackgroundSubtractor>*)((*bg_model)->mog);
5454
cvReleaseImage( &(*bg_model)->background );
5555
cvReleaseImage( &(*bg_model)->foreground );
5656
memset( *bg_model, 0, sizeof(**bg_model) );
@@ -65,10 +65,10 @@ icvUpdateGaussianBGModel( IplImage* curr_frame, CvGaussBGModel* bg_model, doubl
6565
{
6666
cv::Mat image = cv::cvarrToMat(curr_frame), mask = cv::cvarrToMat(bg_model->foreground);
6767

68-
cv::BackgroundSubtractorMOG* mog = (cv::BackgroundSubtractorMOG*)(bg_model->mog);
68+
cv::Ptr<cv::BackgroundSubtractor>* mog = (cv::Ptr<cv::BackgroundSubtractor>*)(bg_model->mog);
6969
CV_Assert(mog != 0);
7070

71-
(*mog)(image, mask, learningRate);
71+
(*mog)->apply(image, mask, learningRate);
7272
bg_model->countFrames++;
7373

7474
return 0;
@@ -105,13 +105,11 @@ cvCreateGaussianBGModel( IplImage* first_frame, CvGaussBGStatModelParams* parame
105105

106106
bg_model->params = params;
107107

108-
cv::BackgroundSubtractorMOG* mog =
109-
new cv::BackgroundSubtractorMOG(params.win_size,
110-
params.n_gauss,
111-
params.bg_threshold,
112-
params.variance_init);
113-
114-
bg_model->mog = mog;
108+
cv::Ptr<cv::BackgroundSubtractor> mog = cv::createBackgroundSubtractorMOG(params.win_size, params.n_gauss,
109+
params.bg_threshold);
110+
cv::Ptr<cv::BackgroundSubtractor>* pmog = new cv::Ptr<cv::BackgroundSubtractor>;
111+
*pmog = mog;
112+
bg_model->mog = pmog;
115113

116114
CvSize sz = cvGetSize(first_frame);
117115
bg_model->background = cvCreateImage(sz, IPL_DEPTH_8U, first_frame->nChannels);

modules/ml/src/ml_init.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ CV_INIT_ALGORITHM(EM, "StatModel.EM",
5656

5757
bool initModule_ml(void)
5858
{
59-
Ptr<Algorithm> em = createEM();
59+
Ptr<Algorithm> em = createEM_hidden();
6060
return em->info() != 0;
6161
}
6262

modules/nonfree/src/nonfree_init.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ CV_INIT_ALGORITHM(SIFT, "Feature2D.SIFT",
6767

6868
bool initModule_nonfree(void)
6969
{
70-
Ptr<Algorithm> sift = createSIFT(), surf = createSURF();
70+
Ptr<Algorithm> sift = createSIFT_hidden(), surf = createSURF_hidden();
7171
return sift->info() != 0 && surf->info() != 0;
7272
}
7373

modules/python/src2/cv2.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ typedef Ptr<FeatureDetector> Ptr_FeatureDetector;
125125
typedef Ptr<DescriptorExtractor> Ptr_DescriptorExtractor;
126126
typedef Ptr<Feature2D> Ptr_Feature2D;
127127
typedef Ptr<DescriptorMatcher> Ptr_DescriptorMatcher;
128+
typedef Ptr<BackgroundSubtractor> Ptr_BackgroundSubtractor;
128129

129130
typedef Ptr<cv::softcascade::ChannelFeatureBuilder> Ptr_ChannelFeatureBuilder;
130131

modules/softcascade/src/softcascade_init.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ CV_INIT_ALGORITHM(SCascade, "CascadeDetector.SCascade",
5858

5959
bool initModule_softcascade(void)
6060
{
61-
Ptr<Algorithm> sc = createSCascade();
62-
Ptr<Algorithm> sc1 = createDetector();
61+
Ptr<Algorithm> sc = createSCascade_hidden();
62+
Ptr<Algorithm> sc1 = createDetector_hidden();
6363
return (sc1->info() != 0) && (sc->info() != 0);
6464
}
6565

0 commit comments

Comments
 (0)