refactored video module; use the new-style algorithms now
This commit is contained in:
@@ -32,16 +32,13 @@ int main(int argc, char** argv)
|
||||
setUseOptimized(true);
|
||||
setNumThreads(8);
|
||||
|
||||
Ptr<BackgroundSubtractorGMG> fgbg = Algorithm::create<BackgroundSubtractorGMG>("BackgroundSubtractor.GMG");
|
||||
Ptr<BackgroundSubtractor> fgbg = createBackgroundSubtractorGMG(20, 0.7);
|
||||
if (fgbg.empty())
|
||||
{
|
||||
std::cerr << "Failed to create BackgroundSubtractor.GMG Algorithm." << std::endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
fgbg->set("initializationFrames", 20);
|
||||
fgbg->set("decisionThreshold", 0.7);
|
||||
|
||||
VideoCapture cap;
|
||||
if (argc > 1)
|
||||
cap.open(argv[1]);
|
||||
@@ -65,9 +62,9 @@ int main(int argc, char** argv)
|
||||
if (frame.empty())
|
||||
break;
|
||||
|
||||
(*fgbg)(frame, fgmask);
|
||||
fgbg->apply(frame, fgmask);
|
||||
|
||||
frame.copyTo(segm);
|
||||
frame.convertTo(segm, CV_8U, 0.5);
|
||||
add(frame, Scalar(100, 100, 0), segm, fgmask);
|
||||
|
||||
imshow("FG Segmentation", segm);
|
||||
|
@@ -51,7 +51,7 @@ int main(int argc, const char** argv)
|
||||
namedWindow("foreground image", CV_WINDOW_NORMAL);
|
||||
namedWindow("mean background image", CV_WINDOW_NORMAL);
|
||||
|
||||
BackgroundSubtractorMOG2 bg_model;//(100, 3, 0.3, 5);
|
||||
Ptr<BackgroundSubtractor> bg_model = createBackgroundSubtractorMOG2();
|
||||
|
||||
Mat img, fgmask, fgimg;
|
||||
|
||||
@@ -68,13 +68,13 @@ int main(int argc, const char** argv)
|
||||
fgimg.create(img.size(), img.type());
|
||||
|
||||
//update the model
|
||||
bg_model(img, fgmask, update_bg_model ? -1 : 0);
|
||||
bg_model->apply(img, fgmask, update_bg_model ? -1 : 0);
|
||||
|
||||
fgimg = Scalar::all(0);
|
||||
img.copyTo(fgimg, fgmask);
|
||||
|
||||
Mat bgimg;
|
||||
bg_model.getBackgroundImage(bgimg);
|
||||
bg_model->getBackgroundImage(bgimg);
|
||||
|
||||
imshow("image", img);
|
||||
imshow("foreground mask", fgmask);
|
||||
|
@@ -87,15 +87,15 @@ int main(int argc, char** argv)
|
||||
namedWindow("video", 1);
|
||||
namedWindow("segmented", 1);
|
||||
|
||||
BackgroundSubtractorMOG bgsubtractor;
|
||||
bgsubtractor.set("noiseSigma", 10);
|
||||
Ptr<BackgroundSubtractorMOG> bgsubtractor=createBackgroundSubtractorMOG();
|
||||
bgsubtractor->setNoiseSigma(10);
|
||||
|
||||
for(;;)
|
||||
{
|
||||
cap >> tmp_frame;
|
||||
if( !tmp_frame.data )
|
||||
break;
|
||||
bgsubtractor(tmp_frame, bgmask, update_bg_model ? -1 : 0);
|
||||
bgsubtractor->apply(tmp_frame, bgmask, update_bg_model ? -1 : 0);
|
||||
//CvMat _bgmask = bgmask;
|
||||
//cvSegmentFGMask(&_bgmask);
|
||||
refineSegments(tmp_frame, bgmask, out_frame);
|
||||
|
Reference in New Issue
Block a user