forked from myfavouritekk/bgslibrary
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
56 changed files
with
182 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,172 @@ | ||
/* | ||
This file is part of BGSLibrary. | ||
BGSLibrary is free software: you can redistribute it and/or modify | ||
it under the terms of the GNU General Public License as published by | ||
the Free Software Foundation, either version 3 of the License, or | ||
(at your option) any later version. | ||
BGSLibrary is distributed in the hope that it will be useful, | ||
but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
GNU General Public License for more details. | ||
You should have received a copy of the GNU General Public License | ||
along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. | ||
*/ | ||
#include <iostream> | ||
#include <cv.h> | ||
#include <highgui.h> | ||
|
||
#include "package_bgs/FrameDifferenceBGS.h" | ||
#include "package_bgs/StaticFrameDifferenceBGS.h" | ||
#include "package_bgs/WeightedMovingMeanBGS.h" | ||
#include "package_bgs/WeightedMovingVarianceBGS.h" | ||
#include "package_bgs/MixtureOfGaussianV1BGS.h" | ||
#include "package_bgs/MixtureOfGaussianV2BGS.h" | ||
#include "package_bgs/AdaptiveBackgroundLearning.h" | ||
#include "package_bgs/AdaptiveSelectiveBackgroundLearning.h" | ||
|
||
#if CV_MAJOR_VERSION >= 2 && CV_MINOR_VERSION >= 4 && CV_SUBMINOR_VERSION >= 3 | ||
#include "package_bgs/GMG.h" | ||
#endif | ||
|
||
#include "package_bgs/dp/DPAdaptiveMedianBGS.h" | ||
#include "package_bgs/dp/DPGrimsonGMMBGS.h" | ||
#include "package_bgs/dp/DPZivkovicAGMMBGS.h" | ||
#include "package_bgs/dp/DPMeanBGS.h" | ||
#include "package_bgs/dp/DPWrenGABGS.h" | ||
#include "package_bgs/dp/DPPratiMediodBGS.h" | ||
#include "package_bgs/dp/DPEigenbackgroundBGS.h" | ||
#include "package_bgs/dp/DPTextureBGS.h" | ||
|
||
#include "package_bgs/tb/T2FGMM_UM.h" | ||
#include "package_bgs/tb/T2FGMM_UV.h" | ||
#include "package_bgs/tb/T2FMRF_UM.h" | ||
#include "package_bgs/tb/T2FMRF_UV.h" | ||
#include "package_bgs/tb/FuzzySugenoIntegral.h" | ||
#include "package_bgs/tb/FuzzyChoquetIntegral.h" | ||
|
||
#include "package_bgs/lb/LBSimpleGaussian.h" | ||
#include "package_bgs/lb/LBFuzzyGaussian.h" | ||
#include "package_bgs/lb/LBMixtureOfGaussians.h" | ||
#include "package_bgs/lb/LBAdaptiveSOM.h" | ||
#include "package_bgs/lb/LBFuzzyAdaptiveSOM.h" | ||
|
||
#if !defined(_WIN32) | ||
// Currently this method works only on Linux platform. | ||
#include "package_bgs/ck/LbpMrf.h" | ||
#endif | ||
|
||
#include "package_bgs/jmo/MultiLayerBGS.h" | ||
// The PBAS algorithm was removed from BGSLibrary because it is | ||
// based on patented algorithm ViBE | ||
// http://www2.ulg.ac.be/telecom/research/vibe/ | ||
//#include "package_bgs/pt/PixelBasedAdaptiveSegmenter.h" | ||
#include "package_bgs/av/VuMeter.h" | ||
#include "package_bgs/ae/KDE.h" | ||
#include "package_bgs/db/IndependentMultimodalBGS.h" | ||
#include "package_bgs/sjn/SJN_MultiCueBGS.h" | ||
#include "package_bgs/bl/SigmaDeltaBGS.h" | ||
|
||
int main(int argc, char **argv) | ||
{ | ||
std::cout << "Using OpenCV " << CV_MAJOR_VERSION << "." << CV_MINOR_VERSION << "." << CV_SUBMINOR_VERSION << std::endl; | ||
|
||
/* Background Subtraction Methods */ | ||
IBGS *bgs; | ||
|
||
/*** Default Package ***/ | ||
bgs = new FrameDifferenceBGS; | ||
//bgs = new StaticFrameDifferenceBGS; | ||
//bgs = new WeightedMovingMeanBGS; | ||
//bgs = new WeightedMovingVarianceBGS; | ||
//bgs = new MixtureOfGaussianV1BGS; | ||
//bgs = new MixtureOfGaussianV2BGS; | ||
//bgs = new AdaptiveBackgroundLearning; | ||
//bgs = new AdaptiveSelectiveBackgroundLearning; | ||
//bgs = new GMG; | ||
|
||
/*** DP Package (thanks to Donovan Parks) ***/ | ||
//bgs = new DPAdaptiveMedianBGS; | ||
//bgs = new DPGrimsonGMMBGS; | ||
//bgs = new DPZivkovicAGMMBGS; | ||
//bgs = new DPMeanBGS; | ||
//bgs = new DPWrenGABGS; | ||
//bgs = new DPPratiMediodBGS; | ||
//bgs = new DPEigenbackgroundBGS; | ||
//bgs = new DPTextureBGS; | ||
|
||
/*** TB Package (thanks to Thierry Bouwmans, Fida EL BAF and Zhenjie Zhao) ***/ | ||
//bgs = new T2FGMM_UM; | ||
//bgs = new T2FGMM_UV; | ||
//bgs = new T2FMRF_UM; | ||
//bgs = new T2FMRF_UV; | ||
//bgs = new FuzzySugenoIntegral; | ||
//bgs = new FuzzyChoquetIntegral; | ||
|
||
/*** JMO Package (thanks to Jean-Marc Odobez) ***/ | ||
//bgs = new MultiLayerBGS; | ||
|
||
/*** PT Package (thanks to Martin Hofmann, Philipp Tiefenbacher and Gerhard Rigoll) ***/ | ||
//bgs = new PixelBasedAdaptiveSegmenter; | ||
|
||
/*** LB Package (thanks to Laurence Bender) ***/ | ||
//bgs = new LBSimpleGaussian; | ||
//bgs = new LBFuzzyGaussian; | ||
//bgs = new LBMixtureOfGaussians; | ||
//bgs = new LBAdaptiveSOM; | ||
//bgs = new LBFuzzyAdaptiveSOM; | ||
|
||
/*** LBP-MRF Package (thanks to Csaba Kertész) ***/ | ||
//bgs = new LbpMrf; | ||
|
||
/*** AV Package (thanks to Lionel Robinault and Antoine Vacavant) ***/ | ||
//bgs = new VuMeter; | ||
|
||
/*** EG Package (thanks to Ahmed Elgammal) ***/ | ||
//bgs = new KDE; | ||
|
||
/*** DB Package (thanks to Domenico Daniele Bloisi) ***/ | ||
//bgs = new IndependentMultimodalBGS; | ||
|
||
/*** SJN Package (thanks to SeungJong Noh) ***/ | ||
//bgs = new SJN_MultiCueBGS; | ||
|
||
/*** BL Package (thanks to Benjamin Laugraud) ***/ | ||
//bgs = new SigmaDeltaBGS; | ||
|
||
int frameNumber = 1; | ||
int key = 0; | ||
while(key != 'q') | ||
{ | ||
std::stringstream ss; | ||
ss << frameNumber; | ||
std::string fileName = "./frames/" + ss.str() + ".png"; | ||
std::cout << "reading " << fileName << std::endl; | ||
|
||
cv::Mat img_input = cv::imread(fileName, CV_LOAD_IMAGE_COLOR); | ||
|
||
if (img_input.empty()) | ||
break; | ||
|
||
cv::imshow("input", img_input); | ||
|
||
cv::Mat img_mask; | ||
cv::Mat img_bkgmodel; | ||
bgs->process(img_input, img_mask, img_bkgmodel); // by default, it shows automatically the foreground mask image | ||
|
||
//if(!img_mask.empty()) | ||
// cv::imshow("Foreground", img_mask); | ||
// do something | ||
|
||
key = cvWaitKey(33); | ||
frameNumber++; | ||
} | ||
cvWaitKey(0); | ||
delete bgs; | ||
|
||
cvDestroyAllWindows(); | ||
|
||
return 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<?xml version="1.0"?> | ||
<opencv_storage> | ||
<enableThreshold>1</enableThreshold> | ||
<threshold>15</threshold> | ||
<showOutput>1</showOutput> | ||
</opencv_storage> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.