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"