diff --git a/Demo.exe b/Demo.exe index c4e647d6e41d00bb323f611e562d986e0f31090f..bffb01e7865373953c29d1891af976e868eec154 100644 Binary files a/Demo.exe and b/Demo.exe differ diff --git a/Demo2.cpp b/Demo2.cpp index 1f9a1b4ad37e1ee99e7e5b8ce8dcfdd17370f61f..d9cbb6ff2427c1b756a39141610c0e46786f29d4 100644 --- a/Demo2.cpp +++ b/Demo2.cpp @@ -65,6 +65,9 @@ along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. #include "package_bgs/sjn/SJN_MultiCueBGS.h" #include "package_bgs/bl/SigmaDeltaBGS.h" +#include "package_bgs/pl/SuBSENSE.h" +#include "package_bgs/pl/LOBSTER.h" + int main(int argc, char **argv) { std::cout << "Using OpenCV " << CV_MAJOR_VERSION << "." << CV_MINOR_VERSION << "." << CV_SUBMINOR_VERSION << std::endl; @@ -132,6 +135,10 @@ int main(int argc, char **argv) /*** BL Package (thanks to Benjamin Laugraud) ***/ //bgs = new SigmaDeltaBGS; + /*** PL Package (thanks to Pierre-Luc) ***/ + //bgs = new SuBSENSEBGS(); + //bgs = new LOBSTERBGS(); + int frameNumber = 1; int key = 0; while(key != 'q') diff --git a/Demo2.exe b/Demo2.exe index c05e99cbe77bccf501c254ef4a77b92b15c51eef..9ecf36ae32f058ed69a58763d35510a7ce7628f0 100644 Binary files a/Demo2.exe and b/Demo2.exe differ diff --git a/FrameProcessor.cpp b/FrameProcessor.cpp index 3dccf40498bafab213adf6b1a34a5fb3935d651f..0cce65261c781861eca6eb926482c55cb5df3a96 100644 --- a/FrameProcessor.cpp +++ b/FrameProcessor.cpp @@ -120,10 +120,8 @@ namespace bgslibrary if (enableLBFuzzyAdaptiveSOM) lbFuzzyAdaptiveSOM = new LBFuzzyAdaptiveSOM; -#if !defined(_WIN32) if (enableLbpMrf) lbpMrf = new LbpMrf; -#endif if(enableMultiLayerBGS) multiLayerBGS = new MultiLayerBGS; @@ -146,6 +144,12 @@ namespace bgslibrary if (enableSigmaDeltaBGS) sdbgs = new SigmaDeltaBGS; + if (enableSuBSENSEBGS) + ssbgs = new SuBSENSEBGS; + + if (enableLOBSTERBGS) + lobgs = new LOBSTERBGS; + if (enableForegroundMaskAnalysis) foregroundMaskAnalysis = new ForegroundMaskAnalysis; } @@ -252,10 +256,8 @@ namespace bgslibrary if (enableLBFuzzyAdaptiveSOM) process("LBFuzzyAdaptiveSOM", lbFuzzyAdaptiveSOM, img_prep, img_lb_fsom); -#if !defined(_WIN32) if (enableLbpMrf) process("LbpMrf", lbpMrf, img_prep, img_lbp_mrf); -#endif if(enableMultiLayerBGS) { @@ -282,6 +284,12 @@ namespace bgslibrary if (enableSigmaDeltaBGS) process("SigmaDeltaBGS", sdbgs, img_prep, img_sdbgs); + if (enableSuBSENSEBGS) + process("SuBSENSEBGS", ssbgs, img_prep, img_ssbgs); + + if (enableLOBSTERBGS) + process("LOBSTERBGS", lobgs, img_prep, img_lobgs); + if (enableForegroundMaskAnalysis) { foregroundMaskAnalysis->stopAt = frameToStop; @@ -316,9 +324,7 @@ namespace bgslibrary foregroundMaskAnalysis->process(frameNumber, "LBMixtureOfGaussians", img_lb_mog); foregroundMaskAnalysis->process(frameNumber, "LBAdaptiveSOM", img_lb_som); foregroundMaskAnalysis->process(frameNumber, "LBFuzzyAdaptiveSOM", img_lb_fsom); -#if !defined(_WIN32) foregroundMaskAnalysis->process(frameNumber, "LbpMrf", img_lbp_mrf); -#endif foregroundMaskAnalysis->process(frameNumber, "MultiLayerBGS", img_mlbgs); //foregroundMaskAnalysis->process(frameNumber, "PBAS", img_pt_pbas); foregroundMaskAnalysis->process(frameNumber, "VuMeter", img_vumeter); @@ -326,6 +332,8 @@ namespace bgslibrary foregroundMaskAnalysis->process(frameNumber, "IMBS", img_imbs); foregroundMaskAnalysis->process(frameNumber, "MultiCueBGS", img_mcbgs); foregroundMaskAnalysis->process(frameNumber, "SigmaDeltaBGS", img_sdbgs); + foregroundMaskAnalysis->process(frameNumber, "SuBSENSEBGS", img_ssbgs); + foregroundMaskAnalysis->process(frameNumber, "LOBSTERBGS", img_lobgs); } firstTime = false; @@ -354,6 +362,12 @@ namespace bgslibrary if (enableForegroundMaskAnalysis) delete foregroundMaskAnalysis; + if (enableLOBSTERBGS) + delete lobgs; + + if (enableSuBSENSEBGS) + delete ssbgs; + if (enableSigmaDeltaBGS) delete sdbgs; @@ -522,9 +536,7 @@ namespace bgslibrary cvWriteInt(fs, "enableLBAdaptiveSOM", enableLBAdaptiveSOM); cvWriteInt(fs, "enableLBFuzzyAdaptiveSOM", enableLBFuzzyAdaptiveSOM); -#if !defined(_WIN32) cvWriteInt(fs, "enableLbpMrf", enableLbpMrf); -#endif cvWriteInt(fs, "enableMultiLayerBGS", enableMultiLayerBGS); //cvWriteInt(fs, "enablePBAS", enablePBAS); @@ -533,6 +545,8 @@ namespace bgslibrary cvWriteInt(fs, "enableIMBS", enableIMBS); cvWriteInt(fs, "enableMultiCueBGS", enableMultiCueBGS); cvWriteInt(fs, "enableSigmaDeltaBGS", enableSigmaDeltaBGS); + cvWriteInt(fs, "enableSuBSENSEBGS", enableSuBSENSEBGS); + cvWriteInt(fs, "enableLOBSTERBGS", enableLOBSTERBGS); cvReleaseFileStorage(&fs); } @@ -580,9 +594,7 @@ namespace bgslibrary enableLBAdaptiveSOM = cvReadIntByName(fs, 0, "enableLBAdaptiveSOM", false); enableLBFuzzyAdaptiveSOM = cvReadIntByName(fs, 0, "enableLBFuzzyAdaptiveSOM", false); -#if !defined(_WIN32) enableLbpMrf = cvReadIntByName(fs, 0, "enableLbpMrf", false); -#endif enableMultiLayerBGS = cvReadIntByName(fs, 0, "enableMultiLayerBGS", false); //enablePBAS = cvReadIntByName(fs, 0, "enablePBAS", false); @@ -591,6 +603,8 @@ namespace bgslibrary enableIMBS = cvReadIntByName(fs, 0, "enableIMBS", false); enableMultiCueBGS = cvReadIntByName(fs, 0, "enableMultiCueBGS", false); enableSigmaDeltaBGS = cvReadIntByName(fs, 0, "enableSigmaDeltaBGS", false); + enableSuBSENSEBGS = cvReadIntByName(fs, 0, "enableSuBSENSEBGS", false); + enableLOBSTERBGS = cvReadIntByName(fs, 0, "enableLOBSTERBGS", false); cvReleaseFileStorage(&fs); } diff --git a/FrameProcessor.h b/FrameProcessor.h index e29d7edb6174691d1e4bb3344d5de8e1c008e781..0bb854ee48d5f30285aeb51369ca5646b03eebcd 100644 --- a/FrameProcessor.h +++ b/FrameProcessor.h @@ -55,9 +55,7 @@ along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. #include "package_bgs/lb/LBAdaptiveSOM.h" #include "package_bgs/lb/LBFuzzyAdaptiveSOM.h" -#if !defined(_WIN32) #include "package_bgs/ck/LbpMrf.h" -#endif #include "package_bgs/jmo/MultiLayerBGS.h" // The PBAS algorithm was removed from BGSLibrary because it is @@ -70,6 +68,9 @@ along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. #include "package_bgs/sjn/SJN_MultiCueBGS.h" #include "package_bgs/bl/SigmaDeltaBGS.h" +#include "package_bgs/pl/SuBSENSE.h" +#include "package_bgs/pl/LOBSTER.h" + #include "package_analysis/ForegroundMaskAnalysis.h" namespace bgslibrary @@ -197,11 +198,9 @@ namespace bgslibrary LBFuzzyAdaptiveSOM* lbFuzzyAdaptiveSOM; bool enableLBFuzzyAdaptiveSOM; -#if !defined(_WIN32) cv::Mat img_lbp_mrf; LbpMrf* lbpMrf; bool enableLbpMrf; -#endif cv::Mat img_mlbgs; MultiLayerBGS* multiLayerBGS; @@ -231,6 +230,14 @@ namespace bgslibrary SigmaDeltaBGS* sdbgs; bool enableSigmaDeltaBGS; + cv::Mat img_ssbgs; + SuBSENSEBGS* ssbgs; + bool enableSuBSENSEBGS; + + cv::Mat img_lobgs; + LOBSTERBGS* lobgs; + bool enableLOBSTERBGS; + ForegroundMaskAnalysis* foregroundMaskAnalysis; bool enableForegroundMaskAnalysis; diff --git a/Main.cpp b/Main.cpp index a7168720e2df995ff588a0bd12b2c0072d381ef4..1d170adf54d9500116d598f2b1e390cb4e21e304 100644 --- a/Main.cpp +++ b/Main.cpp @@ -29,7 +29,7 @@ namespace bgslibrary static void start(int argc, const char **argv) { std::cout << "-----------------------------------------" << std::endl; - std::cout << "Background Subtraction Library v1.9.1 " << std::endl; + std::cout << "Background Subtraction Library v1.9.2 " << std::endl; std::cout << "http://code.google.com/p/bgslibrary " << std::endl; std::cout << "by: " << std::endl; std::cout << "Andrews Sobral (andrewssobral@gmail.com) " << std::endl; diff --git a/VideoAnalysis.cpp b/VideoAnalysis.cpp index 604b3ceb10c66407d10be4e160f9f539f9b9e270..1e46542c9124cd69d3cb030659f236564e328d54 100644 --- a/VideoAnalysis.cpp +++ b/VideoAnalysis.cpp @@ -94,6 +94,8 @@ namespace bgslibrary void VideoAnalysis::start() { + //std::cout << "Press 'ESC' to stop..." << std::endl; + do { videoCapture = new VideoCapture; diff --git a/VideoCapture.cpp b/VideoCapture.cpp index 401fb2729f64bb5d6d376910c186ca6e3f52b7e4..4de5b90f9a1f02eadeba1a7760f40f51c1f996f5 100644 --- a/VideoCapture.cpp +++ b/VideoCapture.cpp @@ -146,6 +146,7 @@ namespace bgslibrary loopDelay = (1. / input_fps)*1000.; std::cout << "loopDelay:" << loopDelay << std::endl; + std::cout << "Press 'ESC' to stop..." << std::endl; bool firstTime = true; do { diff --git a/bgslibrary.exe b/bgslibrary.exe index 3f28b286e762c6c49cb3354aee3dfe492232643c..580bdaf10df702dacd309142121fec351ba8dcbe 100644 Binary files a/bgslibrary.exe and b/bgslibrary.exe differ diff --git a/binaries/mfc_bgslibrary_x86_v1.4.2.zip b/binaries/mfc_bgslibrary_x86_v1.4.2.zip new file mode 100644 index 0000000000000000000000000000000000000000..b4724f65432ee67e24f4077f53b53cc9fc4726f0 Binary files /dev/null and b/binaries/mfc_bgslibrary_x86_v1.4.2.zip differ diff --git a/config/FrameProcessor.xml b/config/FrameProcessor.xml index f20b2a7d262b46c8b8d0305b3dccc129c1601360..5155bbf218b7a34466a2ab7b190ed97eac1a5b97 100644 --- a/config/FrameProcessor.xml +++ b/config/FrameProcessor.xml @@ -30,10 +30,13 @@ <enableLBMixtureOfGaussians>0</enableLBMixtureOfGaussians> <enableLBAdaptiveSOM>0</enableLBAdaptiveSOM> <enableLBFuzzyAdaptiveSOM>0</enableLBFuzzyAdaptiveSOM> +<enableLbpMrf>0</enableLbpMrf> <enableMultiLayerBGS>0</enableMultiLayerBGS> <enableVuMeter>0</enableVuMeter> <enableKDE>0</enableKDE> <enableIMBS>0</enableIMBS> <enableMultiCueBGS>0</enableMultiCueBGS> <enableSigmaDeltaBGS>0</enableSigmaDeltaBGS> +<enableSuBSENSEBGS>0</enableSuBSENSEBGS> +<enableLOBSTERBGS>0</enableLOBSTERBGS> </opencv_storage> diff --git a/package_bgs/pl/LOBSTER.cpp b/package_bgs/pl/LOBSTER.cpp index 879ceef850c3f74a644e5b7fdf89632b1a487339..f4e9bf62a7433f693f2309c712da197c7fd614b4 100644 --- a/package_bgs/pl/LOBSTER.cpp +++ b/package_bgs/pl/LOBSTER.cpp @@ -53,7 +53,8 @@ void LOBSTERBGS::saveConfig() cvWriteInt(fs, "nDescDistThreshold", nDescDistThreshold); cvWriteInt(fs, "nColorDistThreshold", nColorDistThreshold); cvWriteInt(fs, "nBGSamples", nBGSamples); - cvWriteInt(fs, "nRequiredBGSamples", nRequiredBGSamples); + cvWriteInt(fs, "nRequiredBGSamples", nRequiredBGSamples); + cvWriteInt(fs, "showOutput", showOutput); cvReleaseFileStorage(&fs); } @@ -68,6 +69,7 @@ void LOBSTERBGS::loadConfig() nColorDistThreshold = cvReadIntByName(fs, 0, "nColorDistThreshold", BGSLOBSTER_DEFAULT_COLOR_DIST_THRESHOLD); nBGSamples = cvReadIntByName(fs, 0, "nBGSamples", BGSLOBSTER_DEFAULT_NB_BG_SAMPLES); nRequiredBGSamples = cvReadIntByName(fs, 0, "nRequiredBGSamples", BGSLOBSTER_DEFAULT_REQUIRED_NB_BG_SAMPLES); + showOutput = cvReadIntByName(fs, 0, "showOutput", true); cvReleaseFileStorage(&fs); } diff --git a/package_bgs/pl/SuBSENSE.cpp b/package_bgs/pl/SuBSENSE.cpp index 4f0f984bea7326db5f5ad29daa5972c1c3b76445..a4aab0c1c5a3423ddfc793fd6577e0a4d49b07f2 100644 --- a/package_bgs/pl/SuBSENSE.cpp +++ b/package_bgs/pl/SuBSENSE.cpp @@ -54,6 +54,7 @@ void SuBSENSEBGS::saveConfig() cvWriteInt(fs, "nBGSamples", nBGSamples); cvWriteInt(fs, "nRequiredBGSamples", nRequiredBGSamples); cvWriteInt(fs, "nSamplesForMovingAvgs", nSamplesForMovingAvgs); + cvWriteInt(fs, "showOutput", showOutput); cvReleaseFileStorage(&fs); } @@ -68,6 +69,7 @@ void SuBSENSEBGS::loadConfig() nBGSamples = cvReadIntByName(fs, 0, "nBGSamples", BGSSUBSENSE_DEFAULT_NB_BG_SAMPLES); nRequiredBGSamples = cvReadIntByName(fs, 0, "nRequiredBGSamples", BGSSUBSENSE_DEFAULT_REQUIRED_NB_BG_SAMPLES); nSamplesForMovingAvgs = cvReadIntByName(fs, 0, "nSamplesForMovingAvgs", BGSSUBSENSE_DEFAULT_N_SAMPLES_FOR_MV_AVGS); + showOutput = cvReadIntByName(fs, 0, "showOutput", true); cvReleaseFileStorage(&fs); } diff --git a/run_camera.bat b/run_camera.bat index 672229f6755ef00727eca7d1b2c183c24612ef13..1edd3df534096bb4302d87421846d12c9a561ee2 100644 --- a/run_camera.bat +++ b/run_camera.bat @@ -1,2 +1,3 @@ @echo off +cls bgslibrary.exe --use_cam --camera=0 \ No newline at end of file diff --git a/run_video.bat b/run_video.bat index 4f3e39e1a9e6450be8f3a9a18a5a3a082b402dcf..3abd294a8d4fd917bd0463ccc02d4e8bcd5d1b29 100644 --- a/run_video.bat +++ b/run_video.bat @@ -1,2 +1,3 @@ @echo off +cls bgslibrary.exe -uf -fn=dataset/video.avi \ No newline at end of file diff --git a/vs2010/bgslibrary.vcxproj b/vs2010/bgslibrary.vcxproj index afc99bcafee37fff210b73a1efd5af66474f42e2..59a6a54a6f56d04955aa6503ab6e504aede7e6f6 100644 --- a/vs2010/bgslibrary.vcxproj +++ b/vs2010/bgslibrary.vcxproj @@ -234,6 +234,12 @@ <ClCompile Include="..\package_bgs\lb\LBSimpleGaussian.cpp" /> <ClCompile Include="..\package_bgs\MixtureOfGaussianV1BGS.cpp" /> <ClCompile Include="..\package_bgs\MixtureOfGaussianV2BGS.cpp" /> + <ClCompile Include="..\package_bgs\pl\BackgroundSubtractorLBSP.cpp" /> + <ClCompile Include="..\package_bgs\pl\BackgroundSubtractorLOBSTER.cpp" /> + <ClCompile Include="..\package_bgs\pl\BackgroundSubtractorSuBSENSE.cpp" /> + <ClCompile Include="..\package_bgs\pl\LBSP.cpp" /> + <ClCompile Include="..\package_bgs\pl\LOBSTER.cpp" /> + <ClCompile Include="..\package_bgs\pl\SuBSENSE.cpp" /> <ClCompile Include="..\package_bgs\sjn\SJN_MultiCueBGS.cpp" /> <ClCompile Include="..\package_bgs\StaticFrameDifferenceBGS.cpp" /> <ClCompile Include="..\package_bgs\tb\FuzzyChoquetIntegral.cpp" /> @@ -351,6 +357,14 @@ <ClInclude Include="..\package_bgs\lb\Types.h" /> <ClInclude Include="..\package_bgs\MixtureOfGaussianV1BGS.h" /> <ClInclude Include="..\package_bgs\MixtureOfGaussianV2BGS.h" /> + <ClInclude Include="..\package_bgs\pl\BackgroundSubtractorLBSP.h" /> + <ClInclude Include="..\package_bgs\pl\BackgroundSubtractorLOBSTER.h" /> + <ClInclude Include="..\package_bgs\pl\BackgroundSubtractorSuBSENSE.h" /> + <ClInclude Include="..\package_bgs\pl\DistanceUtils.h" /> + <ClInclude Include="..\package_bgs\pl\LBSP.h" /> + <ClInclude Include="..\package_bgs\pl\LOBSTER.h" /> + <ClInclude Include="..\package_bgs\pl\RandUtils.h" /> + <ClInclude Include="..\package_bgs\pl\SuBSENSE.h" /> <ClInclude Include="..\package_bgs\sjn\SJN_MultiCueBGS.h" /> <ClInclude Include="..\package_bgs\StaticFrameDifferenceBGS.h" /> <ClInclude Include="..\package_bgs\tb\FuzzyChoquetIntegral.h" /> @@ -383,6 +397,12 @@ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseDemo2|Win32'">false</ExcludedFromBuild> </ClInclude> </ItemGroup> + <ItemGroup> + <None Include="..\package_bgs\pl\LBSP_16bits_dbcross_1ch.i" /> + <None Include="..\package_bgs\pl\LBSP_16bits_dbcross_3ch1t.i" /> + <None Include="..\package_bgs\pl\LBSP_16bits_dbcross_3ch3t.i" /> + <None Include="..\package_bgs\pl\LBSP_16bits_dbcross_s3ch.i" /> + </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> diff --git a/vs2010/bgslibrary.vcxproj.filters b/vs2010/bgslibrary.vcxproj.filters index 7f29c49dc044e826894b6decbdbac2d5981e7093..ab0fbf0265b52c559040cc089240d8247c1cae67 100644 --- a/vs2010/bgslibrary.vcxproj.filters +++ b/vs2010/bgslibrary.vcxproj.filters @@ -55,6 +55,9 @@ <Filter Include="Header Files\package_bgs\ck"> <UniqueIdentifier>{87961eee-b843-45bd-b642-9dcd9d78b661}</UniqueIdentifier> </Filter> + <Filter Include="Header Files\package_bgs\pl"> + <UniqueIdentifier>{cd33a41f-6151-46a5-95b6-b79022786144}</UniqueIdentifier> + </Filter> </ItemGroup> <ItemGroup> <ClCompile Include="..\package_bgs\AdaptiveBackgroundLearning.cpp"> @@ -306,6 +309,24 @@ <ClCompile Include="..\package_bgs\ck\MotionDetection.cpp"> <Filter>Header Files\package_bgs\ck</Filter> </ClCompile> + <ClCompile Include="..\package_bgs\pl\BackgroundSubtractorLBSP.cpp"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\pl\BackgroundSubtractorLOBSTER.cpp"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\pl\BackgroundSubtractorSuBSENSE.cpp"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\pl\LBSP.cpp"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\pl\LOBSTER.cpp"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\pl\SuBSENSE.cpp"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="..\package_bgs\AdaptiveBackgroundLearning.h"> @@ -581,5 +602,43 @@ <ClInclude Include="..\package_bgs\ck\MotionDetection.hpp"> <Filter>Header Files\package_bgs\ck</Filter> </ClInclude> + <ClInclude Include="..\package_bgs\pl\BackgroundSubtractorLBSP.h"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\pl\BackgroundSubtractorLOBSTER.h"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\pl\BackgroundSubtractorSuBSENSE.h"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\pl\DistanceUtils.h"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\pl\LBSP.h"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\pl\LOBSTER.h"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\pl\RandUtils.h"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\pl\SuBSENSE.h"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <None Include="..\package_bgs\pl\LBSP_16bits_dbcross_1ch.i"> + <Filter>Header Files\package_bgs\pl</Filter> + </None> + <None Include="..\package_bgs\pl\LBSP_16bits_dbcross_3ch1t.i"> + <Filter>Header Files\package_bgs\pl</Filter> + </None> + <None Include="..\package_bgs\pl\LBSP_16bits_dbcross_3ch3t.i"> + <Filter>Header Files\package_bgs\pl</Filter> + </None> + <None Include="..\package_bgs\pl\LBSP_16bits_dbcross_s3ch.i"> + <Filter>Header Files\package_bgs\pl</Filter> + </None> </ItemGroup> </Project> \ No newline at end of file diff --git a/vs2010mfc/Dlg.cpp b/vs2010mfc/Dlg.cpp index 1aefff079f6d09e91bc560f4a5748324fbad3b72..cb48604d839f5a9d79d4f257426c6e7d6490b2aa 100644 --- a/vs2010mfc/Dlg.cpp +++ b/vs2010mfc/Dlg.cpp @@ -235,7 +235,7 @@ HCURSOR CDlg::OnQueryDragIcon() void CDlg::addBgsList() { - // 34 algorithms + // 36 algorithms (37 with PBAS) m_bgslist.AddString(L"FrameDifferenceBGS"); m_bgslist.AddString(L"StaticFrameDifferenceBGS"); m_bgslist.AddString(L"WeightedMovingMeanBGS"); @@ -271,6 +271,8 @@ void CDlg::addBgsList() m_bgslist.AddString(L"IndependentMultimodalBGS"); m_bgslist.AddString(L"SJN_MultiCueBGS"); m_bgslist.AddString(L"SigmaDeltaBGS"); + m_bgslist.AddString(L"SuBSENSEBGS"); + m_bgslist.AddString(L"LOBSTERBGS"); } bool CDlg::getBgsMethodName() @@ -491,6 +493,10 @@ void CDlg::ThreadProcess() bgs = new SJN_MultiCueBGS; if (methodName == "SigmaDeltaBGS") bgs = new SigmaDeltaBGS; + if (methodName == "SuBSENSEBGS") + bgs = new SuBSENSEBGS; + if (methodName == "LOBSTERBGS") + bgs = new LOBSTERBGS; if(bgs == NULL) { diff --git a/vs2010mfc/bgslibrary_vs2010_mfc.aps b/vs2010mfc/bgslibrary_vs2010_mfc.aps index 1bacf1aade967014b3b296d7db66cf3f01aa8adc..8686b15558a5ee61c91ac09c35ce34241894708a 100644 Binary files a/vs2010mfc/bgslibrary_vs2010_mfc.aps and b/vs2010mfc/bgslibrary_vs2010_mfc.aps differ diff --git a/vs2010mfc/bgslibrary_vs2010_mfc.rc b/vs2010mfc/bgslibrary_vs2010_mfc.rc index 4b6970b8858e232ac8158e7dee28bd63029072ba..7251658acf1cfb47e9ec6c5f95ae0d54e0237ed3 100644 Binary files a/vs2010mfc/bgslibrary_vs2010_mfc.rc and b/vs2010mfc/bgslibrary_vs2010_mfc.rc differ diff --git a/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj b/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj index 67d0fba1e2967e843ecc5f5a068f55db82f8cbfc..2a497b8ad2dee9491b8c230416f017195d35027c 100644 --- a/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj +++ b/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj @@ -43,7 +43,6 @@ <LinkIncremental>true</LinkIncremental> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <LinkIncremental>false</LinkIncremental> <OutDir>.</OutDir> <TargetName>$(ProjectName)_x86</TargetName> </PropertyGroup> @@ -78,13 +77,16 @@ <IntrinsicFunctions>true</IntrinsicFunctions> <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <AdditionalIncludeDirectories>C:\OpenCV2.4.9\build\include;C:\OpenCV2.4.9\build\include\opencv;C:\boost_1_55_0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> </ClCompile> <Link> <SubSystem>Windows</SubSystem> <GenerateDebugInformation>true</GenerateDebugInformation> <EnableCOMDATFolding>true</EnableCOMDATFolding> <OptimizeReferences>true</OptimizeReferences> - <AdditionalDependencies>C:\OpenCV2.4.9\build\x86\vc10\staticlib\*.lib;C:\boost_1_55_0\stage32\lib\vc10\*.lib;comctl32.lib;VFW32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>C:\OpenCV2.4.9\build\x86\vc10\staticlib\*.lib;C:\boost_1_55_0\stage32\lib\vc10\*.lib;comctl32.lib;VFW32.lib;uafxcw.lib;LIBCMT.lib;%(AdditionalDependencies)</AdditionalDependencies> + <ShowProgress>NotSet</ShowProgress> + <IgnoreSpecificDefaultLibraries>uafxcw.lib;LIBCMT.lib</IgnoreSpecificDefaultLibraries> </Link> <Midl> <MkTypLibCompatible>false</MkTypLibCompatible> @@ -98,11 +100,23 @@ </ResourceCompile> </ItemDefinitionGroup> <ItemGroup> + <None Include="..\package_bgs\pl\LBSP_16bits_dbcross_1ch.i" /> + <None Include="..\package_bgs\pl\LBSP_16bits_dbcross_3ch1t.i" /> + <None Include="..\package_bgs\pl\LBSP_16bits_dbcross_3ch3t.i" /> + <None Include="..\package_bgs\pl\LBSP_16bits_dbcross_s3ch.i" /> <None Include="ReadMe.txt" /> <None Include="res\bgslibrary_vs2010_mfc.ico" /> <None Include="res\bgslibrary_vs2010_mfc.rc2" /> </ItemGroup> <ItemGroup> + <ClInclude Include="..\package_bgs\pl\BackgroundSubtractorLBSP.h" /> + <ClInclude Include="..\package_bgs\pl\BackgroundSubtractorLOBSTER.h" /> + <ClInclude Include="..\package_bgs\pl\BackgroundSubtractorSuBSENSE.h" /> + <ClInclude Include="..\package_bgs\pl\DistanceUtils.h" /> + <ClInclude Include="..\package_bgs\pl\LBSP.h" /> + <ClInclude Include="..\package_bgs\pl\LOBSTER.h" /> + <ClInclude Include="..\package_bgs\pl\RandUtils.h" /> + <ClInclude Include="..\package_bgs\pl\SuBSENSE.h" /> <ClInclude Include="App.h" /> <ClInclude Include="Dlg.h" /> <ClInclude Include="..\package_bgs\AdaptiveBackgroundLearning.h" /> @@ -187,6 +201,12 @@ <ClInclude Include="targetver.h" /> </ItemGroup> <ItemGroup> + <ClCompile Include="..\package_bgs\pl\BackgroundSubtractorLBSP.cpp" /> + <ClCompile Include="..\package_bgs\pl\BackgroundSubtractorLOBSTER.cpp" /> + <ClCompile Include="..\package_bgs\pl\BackgroundSubtractorSuBSENSE.cpp" /> + <ClCompile Include="..\package_bgs\pl\LBSP.cpp" /> + <ClCompile Include="..\package_bgs\pl\LOBSTER.cpp" /> + <ClCompile Include="..\package_bgs\pl\SuBSENSE.cpp" /> <ClCompile Include="App.cpp" /> <ClCompile Include="Dlg.cpp" /> <ClCompile Include="..\package_bgs\AdaptiveBackgroundLearning.cpp" /> diff --git a/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj.filters b/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj.filters index 434547c176e2924f8977360324b378efab3a344a..1f3c0cc1f62db72dde5f59533a66919180ae7246 100644 --- a/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj.filters +++ b/vs2010mfc/bgslibrary_vs2010_mfc.vcxproj.filters @@ -43,6 +43,9 @@ <Filter Include="Header Files\package_bgs\bl"> <UniqueIdentifier>{e23418b4-562b-41ae-bd15-e9ad45ece1d1}</UniqueIdentifier> </Filter> + <Filter Include="Header Files\package_bgs\pl"> + <UniqueIdentifier>{2a0f8129-33e2-4829-a112-edba4c8f5ef6}</UniqueIdentifier> + </Filter> </ItemGroup> <ItemGroup> <None Include="ReadMe.txt" /> @@ -52,6 +55,18 @@ <None Include="res\bgslibrary_vs2010_mfc.ico"> <Filter>Resource Files</Filter> </None> + <None Include="..\package_bgs\pl\LBSP_16bits_dbcross_1ch.i"> + <Filter>Header Files\package_bgs\pl</Filter> + </None> + <None Include="..\package_bgs\pl\LBSP_16bits_dbcross_3ch1t.i"> + <Filter>Header Files\package_bgs\pl</Filter> + </None> + <None Include="..\package_bgs\pl\LBSP_16bits_dbcross_3ch3t.i"> + <Filter>Header Files\package_bgs\pl</Filter> + </None> + <None Include="..\package_bgs\pl\LBSP_16bits_dbcross_s3ch.i"> + <Filter>Header Files\package_bgs\pl</Filter> + </None> </ItemGroup> <ItemGroup> <ClInclude Include="Dlg.h"> @@ -300,6 +315,30 @@ <ClInclude Include="..\package_bgs\bl\stdbool.h"> <Filter>Header Files\package_bgs\bl</Filter> </ClInclude> + <ClInclude Include="..\package_bgs\pl\BackgroundSubtractorLBSP.h"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\pl\BackgroundSubtractorLOBSTER.h"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\pl\BackgroundSubtractorSuBSENSE.h"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\pl\DistanceUtils.h"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\pl\LBSP.h"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\pl\LOBSTER.h"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\pl\RandUtils.h"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClInclude> + <ClInclude Include="..\package_bgs\pl\SuBSENSE.h"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClInclude> </ItemGroup> <ItemGroup> <ClCompile Include="Dlg.cpp"> @@ -515,6 +554,24 @@ <ClCompile Include="..\package_bgs\bl\SigmaDeltaBGS.cpp"> <Filter>Header Files\package_bgs\bl</Filter> </ClCompile> + <ClCompile Include="..\package_bgs\pl\BackgroundSubtractorLBSP.cpp"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\pl\BackgroundSubtractorLOBSTER.cpp"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\pl\BackgroundSubtractorSuBSENSE.cpp"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\pl\LBSP.cpp"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\pl\LOBSTER.cpp"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClCompile> + <ClCompile Include="..\package_bgs\pl\SuBSENSE.cpp"> + <Filter>Header Files\package_bgs\pl</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ResourceCompile Include="bgslibrary_vs2010_mfc.rc"> diff --git a/vs2010mfc/bgslibrary_vs2010_mfc_x86.exe b/vs2010mfc/bgslibrary_vs2010_mfc_x86.exe new file mode 100644 index 0000000000000000000000000000000000000000..c5ddc4edfb1aae7579a83fa09a0a4b670f98d567 Binary files /dev/null and b/vs2010mfc/bgslibrary_vs2010_mfc_x86.exe differ diff --git a/vs2010mfc/config/LOBSTERBGS.xml b/vs2010mfc/config/LOBSTERBGS.xml new file mode 100644 index 0000000000000000000000000000000000000000..c17b5510fc48a0142fe8bf2c4afad7024d78625f --- /dev/null +++ b/vs2010mfc/config/LOBSTERBGS.xml @@ -0,0 +1,10 @@ +<?xml version="1.0"?> +<opencv_storage> +<fRelLBSPThreshold>3.6500000953674316e-001</fRelLBSPThreshold> +<nLBSPThresholdOffset>0</nLBSPThresholdOffset> +<nDescDistThreshold>4</nDescDistThreshold> +<nColorDistThreshold>30</nColorDistThreshold> +<nBGSamples>35</nBGSamples> +<nRequiredBGSamples>2</nRequiredBGSamples> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/config/SuBSENSEBGS.xml b/vs2010mfc/config/SuBSENSEBGS.xml new file mode 100644 index 0000000000000000000000000000000000000000..05509c15a8c0cf70db253d9ad5a90f3bfe819942 --- /dev/null +++ b/vs2010mfc/config/SuBSENSEBGS.xml @@ -0,0 +1,10 @@ +<?xml version="1.0"?> +<opencv_storage> +<fRelLBSPThreshold>3.3300000429153442e-001</fRelLBSPThreshold> +<nDescDistThresholdOffset>3</nDescDistThresholdOffset> +<nMinColorDistThreshold>30</nMinColorDistThreshold> +<nBGSamples>50</nBGSamples> +<nRequiredBGSamples>2</nRequiredBGSamples> +<nSamplesForMovingAvgs>100</nSamplesForMovingAvgs> +<showOutput>0</showOutput> +</opencv_storage> diff --git a/vs2010mfc/outputs/background/KEEP_THIS_FOLDER b/vs2010mfc/outputs/background/KEEP_THIS_FOLDER new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/vs2010mfc/outputs/foreground/KEEP_THIS_FOLDER b/vs2010mfc/outputs/foreground/KEEP_THIS_FOLDER new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/vs2010mfc/outputs/input/KEEP_THIS_FOLDER b/vs2010mfc/outputs/input/KEEP_THIS_FOLDER new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/vs2010mfc/stdafx.h b/vs2010mfc/stdafx.h index c07f951ff026acca99c46498d06dc2f9202350cb..2d94db4d7b4e817513315e65d824c9503b534179 100644 --- a/vs2010mfc/stdafx.h +++ b/vs2010mfc/stdafx.h @@ -100,3 +100,6 @@ typedef boost::chrono::microseconds microseconds; #include "../package_bgs/db/IndependentMultimodalBGS.h" #include "../package_bgs/sjn/SJN_MultiCueBGS.h" #include "../package_bgs/bl/SigmaDeltaBGS.h" + +#include "../package_bgs/pl/SuBSENSE.h" +#include "../package_bgs/pl/LOBSTER.h"