diff --git a/vs2013mfc/.gitignore b/vs2013mfc/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..fc99052718c029dc8927b7fb705ddc2ad093f0c7
--- /dev/null
+++ b/vs2013mfc/.gitignore
@@ -0,0 +1,3 @@
+*.exe
+*.pdb
+*.dll
\ No newline at end of file
diff --git a/vs2013mfc/ReadMe.txt b/vs2013mfc/ReadMe.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0a203a163dcfcf3159d3e76a6253be80610e3fe2
--- /dev/null
+++ b/vs2013mfc/ReadMe.txt
@@ -0,0 +1,21 @@
+*** REQUIREMENTS ***
+Certify that you have installed OpenCV 2.4.10 and Boost 1.61 in the following paths:
+C:\OpenCV2.4.10
+C:\boost_1_61_0
+
+INCLUDES:
+	C:\OpenCV2.4.10\build\include;
+	C:\OpenCV2.4.10\build\include\opencv;
+	C:\boost_1_61_0
+
+LIBRAIRIES:
+	C:\OpenCV2.4.10\build\x86\vc12\staticlib\*.lib;
+	C:\boost_1_61_0\lib32-msvc-12.0\libboost_chrono-vc120-mt-s-1_61.lib;
+	C:\boost_1_61_0\lib32-msvc-12.0\libboost_system-vc120-mt-s-1_61.lib
+
+LINK TO DOWNLOAD BOOST 1.61:
+https://sourceforge.net/projects/boost/files/boost-binaries/1.61.0/
+boost_1_61_0-msvc-12.0-32.exe [Visual Studio 2013, x86 (32bits)]
+
+LINK TO DOWNLOAD OPENCV 2.4.10:
+https://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.10/opencv-2.4.10.exe/download
\ No newline at end of file
diff --git a/vs2013mfc/config/AdaptiveBackgroundLearning.xml b/vs2013mfc/config/AdaptiveBackgroundLearning.xml
new file mode 100644
index 0000000000000000000000000000000000000000..313e1d4ed8e2e952599137b18753bf15811d2ec9
--- /dev/null
+++ b/vs2013mfc/config/AdaptiveBackgroundLearning.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<alpha>5.0000000000000003e-002</alpha>
+<limit>-1</limit>
+<enableThreshold>1</enableThreshold>
+<threshold>15</threshold>
+<showForeground>0</showForeground>
+<showBackground>0</showBackground>
+</opencv_storage>
diff --git a/vs2013mfc/config/AdaptiveSelectiveBackgroundLearning.xml b/vs2013mfc/config/AdaptiveSelectiveBackgroundLearning.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f175558a53932aac23393b3dd71588289a0f8ee4
--- /dev/null
+++ b/vs2013mfc/config/AdaptiveSelectiveBackgroundLearning.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<learningFrames>90</learningFrames>
+<alphaLearn>5.0000000000000003e-002</alphaLearn>
+<alphaDetection>5.0000000000000003e-002</alphaDetection>
+<threshold>25</threshold>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/DPAdaptiveMedianBGS.xml b/vs2013mfc/config/DPAdaptiveMedianBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8d09e859cf6b75c2a5432515ad56c2d87b558c8f
--- /dev/null
+++ b/vs2013mfc/config/DPAdaptiveMedianBGS.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<threshold>40</threshold>
+<samplingRate>7</samplingRate>
+<learningFrames>30</learningFrames>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/DPEigenbackgroundBGS.xml b/vs2013mfc/config/DPEigenbackgroundBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d610426deba5bf4cc874695b1498b63390e0edf8
--- /dev/null
+++ b/vs2013mfc/config/DPEigenbackgroundBGS.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<threshold>225</threshold>
+<historySize>20</historySize>
+<embeddedDim>10</embeddedDim>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/DPGrimsonGMMBGS.xml b/vs2013mfc/config/DPGrimsonGMMBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8ade44f22824afdef676e1a7e80c93ffba82ac98
--- /dev/null
+++ b/vs2013mfc/config/DPGrimsonGMMBGS.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<threshold>9.</threshold>
+<alpha>1.0000000000000000e-002</alpha>
+<gaussians>3</gaussians>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/DPMeanBGS.xml b/vs2013mfc/config/DPMeanBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9bd59a84a2fc903366207bea2023eb0af22e30bb
--- /dev/null
+++ b/vs2013mfc/config/DPMeanBGS.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<threshold>2700</threshold>
+<alpha>9.9999999747524271e-007</alpha>
+<learningFrames>30</learningFrames>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/DPPratiMediodBGS.xml b/vs2013mfc/config/DPPratiMediodBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fdf20b4efdecf362ef6de51abb5246ac60d59166
--- /dev/null
+++ b/vs2013mfc/config/DPPratiMediodBGS.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<threshold>30</threshold>
+<samplingRate>5</samplingRate>
+<historySize>16</historySize>
+<weight>5</weight>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/DPTextureBGS.xml b/vs2013mfc/config/DPTextureBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0d63e78ca0ddbea78b29206d4e652e0f3398b3c0
--- /dev/null
+++ b/vs2013mfc/config/DPTextureBGS.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/DPWrenGABGS.xml b/vs2013mfc/config/DPWrenGABGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7eaa78ba47d02d4547ca1d3af118417e857f8048
--- /dev/null
+++ b/vs2013mfc/config/DPWrenGABGS.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<threshold>1.2250000000000000e+001</threshold>
+<alpha>4.9999998882412910e-003</alpha>
+<learningFrames>30</learningFrames>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/DPZivkovicAGMMBGS.xml b/vs2013mfc/config/DPZivkovicAGMMBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..98ee82aaf9cd25da3cc38e2747da86db4822d9f2
--- /dev/null
+++ b/vs2013mfc/config/DPZivkovicAGMMBGS.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<threshold>25.</threshold>
+<alpha>1.0000000474974513e-003</alpha>
+<gaussians>3</gaussians>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/FrameDifferenceBGS.xml b/vs2013mfc/config/FrameDifferenceBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..943a6c91f4eb5c48a786cd59ee1b73456090d365
--- /dev/null
+++ b/vs2013mfc/config/FrameDifferenceBGS.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<enableThreshold>1</enableThreshold>
+<threshold>15</threshold>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/FuzzyChoquetIntegral.xml b/vs2013mfc/config/FuzzyChoquetIntegral.xml
new file mode 100644
index 0000000000000000000000000000000000000000..22074aa90bffddb80527f40cbf4406b41ff47a48
--- /dev/null
+++ b/vs2013mfc/config/FuzzyChoquetIntegral.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<showOutput>0</showOutput>
+<framesToLearn>10</framesToLearn>
+<alphaLearn>1.0000000000000001e-001</alphaLearn>
+<alphaUpdate>1.0000000000000000e-002</alphaUpdate>
+<colorSpace>1</colorSpace>
+<option>2</option>
+<smooth>1</smooth>
+<threshold>6.7000000000000004e-001</threshold>
+</opencv_storage>
diff --git a/vs2013mfc/config/FuzzySugenoIntegral.xml b/vs2013mfc/config/FuzzySugenoIntegral.xml
new file mode 100644
index 0000000000000000000000000000000000000000..22074aa90bffddb80527f40cbf4406b41ff47a48
--- /dev/null
+++ b/vs2013mfc/config/FuzzySugenoIntegral.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<showOutput>0</showOutput>
+<framesToLearn>10</framesToLearn>
+<alphaLearn>1.0000000000000001e-001</alphaLearn>
+<alphaUpdate>1.0000000000000000e-002</alphaUpdate>
+<colorSpace>1</colorSpace>
+<option>2</option>
+<smooth>1</smooth>
+<threshold>6.7000000000000004e-001</threshold>
+</opencv_storage>
diff --git a/vs2013mfc/config/GMG.xml b/vs2013mfc/config/GMG.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e3ebdc736e92d8f096ffaacb9b491b111e353ebf
--- /dev/null
+++ b/vs2013mfc/config/GMG.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<initializationFrames>20</initializationFrames>
+<decisionThreshold>6.9999999999999996e-001</decisionThreshold>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/IndependentMultimodalBGS.xml b/vs2013mfc/config/IndependentMultimodalBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0d63e78ca0ddbea78b29206d4e652e0f3398b3c0
--- /dev/null
+++ b/vs2013mfc/config/IndependentMultimodalBGS.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/KDE.xml b/vs2013mfc/config/KDE.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c9b74025011e4f19d1752e8955c3b6ae0cf0f30a
--- /dev/null
+++ b/vs2013mfc/config/KDE.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<framesToLearn>10</framesToLearn>
+<SequenceLength>50</SequenceLength>
+<TimeWindowSize>100</TimeWindowSize>
+<SDEstimationFlag>1</SDEstimationFlag>
+<lUseColorRatiosFlag>1</lUseColorRatiosFlag>
+<th>9.9999999999999995e-008</th>
+<alpha>2.9999999999999999e-001</alpha>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/LBAdaptiveSOM.xml b/vs2013mfc/config/LBAdaptiveSOM.xml
new file mode 100644
index 0000000000000000000000000000000000000000..94b257021cfcf7c730ed2af03281086623339fb2
--- /dev/null
+++ b/vs2013mfc/config/LBAdaptiveSOM.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<sensitivity>75</sensitivity>
+<trainingSensitivity>245</trainingSensitivity>
+<learningRate>62</learningRate>
+<trainingLearningRate>255</trainingLearningRate>
+<trainingSteps>55</trainingSteps>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/LBFuzzyAdaptiveSOM.xml b/vs2013mfc/config/LBFuzzyAdaptiveSOM.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7168563f6a032ac019e3facff2bf5b34bda5a779
--- /dev/null
+++ b/vs2013mfc/config/LBFuzzyAdaptiveSOM.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<sensitivity>90</sensitivity>
+<trainingSensitivity>240</trainingSensitivity>
+<learningRate>38</learningRate>
+<trainingLearningRate>255</trainingLearningRate>
+<trainingSteps>81</trainingSteps>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/LBFuzzyGaussian.xml b/vs2013mfc/config/LBFuzzyGaussian.xml
new file mode 100644
index 0000000000000000000000000000000000000000..18635a1248e632d25f4d623c7e011a71d18ac74d
--- /dev/null
+++ b/vs2013mfc/config/LBFuzzyGaussian.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<sensitivity>72</sensitivity>
+<bgThreshold>162</bgThreshold>
+<learningRate>49</learningRate>
+<noiseVariance>195</noiseVariance>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/LBMixtureOfGaussians.xml b/vs2013mfc/config/LBMixtureOfGaussians.xml
new file mode 100644
index 0000000000000000000000000000000000000000..22737201df64764ae51248cfb40eef752bb36500
--- /dev/null
+++ b/vs2013mfc/config/LBMixtureOfGaussians.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<sensitivity>81</sensitivity>
+<bgThreshold>83</bgThreshold>
+<learningRate>59</learningRate>
+<noiseVariance>206</noiseVariance>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/LBSimpleGaussian.xml b/vs2013mfc/config/LBSimpleGaussian.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a803f3f120523af3bbe4fa721bff4a645148ef73
--- /dev/null
+++ b/vs2013mfc/config/LBSimpleGaussian.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<sensitivity>66</sensitivity>
+<noiseVariance>162</noiseVariance>
+<learningRate>18</learningRate>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/LOBSTERBGS.xml b/vs2013mfc/config/LOBSTERBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c17b5510fc48a0142fe8bf2c4afad7024d78625f
--- /dev/null
+++ b/vs2013mfc/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/vs2013mfc/config/MixtureOfGaussianV1BGS.xml b/vs2013mfc/config/MixtureOfGaussianV1BGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1e09ceb40082f60946afc3cb09e7ad6189af2e09
--- /dev/null
+++ b/vs2013mfc/config/MixtureOfGaussianV1BGS.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<alpha>5.0000000000000003e-002</alpha>
+<enableThreshold>1</enableThreshold>
+<threshold>15</threshold>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/MixtureOfGaussianV2BGS.xml b/vs2013mfc/config/MixtureOfGaussianV2BGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1e09ceb40082f60946afc3cb09e7ad6189af2e09
--- /dev/null
+++ b/vs2013mfc/config/MixtureOfGaussianV2BGS.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<alpha>5.0000000000000003e-002</alpha>
+<enableThreshold>1</enableThreshold>
+<threshold>15</threshold>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/MultiCueBGS.xml b/vs2013mfc/config/MultiCueBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0d63e78ca0ddbea78b29206d4e652e0f3398b3c0
--- /dev/null
+++ b/vs2013mfc/config/MultiCueBGS.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/MultiLayerBGS.xml b/vs2013mfc/config/MultiLayerBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9b803db7ec73435625fb1fc3f0f5458f77b71a11
--- /dev/null
+++ b/vs2013mfc/config/MultiLayerBGS.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<preloadModel>"./models/MultiLayerBGSModel.yml"</preloadModel>
+<saveModel>0</saveModel>
+<detectAfter>0</detectAfter>
+<disableDetectMode>1</disableDetectMode>
+<disableLearningInDetecMode>0</disableLearningInDetecMode>
+<loadDefaultParams>1</loadDefaultParams>
+<max_mode_num>5</max_mode_num>
+<weight_updating_constant>5.</weight_updating_constant>
+<texture_weight>5.0000000000000000e-001</texture_weight>
+<bg_mode_percent>6.0000002384185791e-001</bg_mode_percent>
+<pattern_neig_half_size>4</pattern_neig_half_size>
+<pattern_neig_gaus_sigma>3.</pattern_neig_gaus_sigma>
+<bg_prob_threshold>2.0000000298023224e-001</bg_prob_threshold>
+<bg_prob_updating_threshold>2.0000000298023224e-001</bg_prob_updating_threshold>
+<robust_LBP_constant>3</robust_LBP_constant>
+<min_noised_angle>1.7453293502330780e-001</min_noised_angle>
+<shadow_rate>6.0000002384185791e-001</shadow_rate>
+<highlight_rate>1.2000000476837158e+000</highlight_rate>
+<bilater_filter_sigma_s>3.</bilater_filter_sigma_s>
+<bilater_filter_sigma_r>1.0000000149011612e-001</bilater_filter_sigma_r>
+<frame_duration>1.0000000149011612e-001</frame_duration>
+<learn_mode_learn_rate_per_second>5.0000000000000000e-001</learn_mode_learn_rate_per_second>
+<learn_weight_learn_rate_per_second>5.0000000000000000e-001</learn_weight_learn_rate_per_second>
+<learn_init_mode_weight>5.0000000745058060e-002</learn_init_mode_weight>
+<detect_mode_learn_rate_per_second>9.9999997764825821e-003</detect_mode_learn_rate_per_second>
+<detect_weight_learn_rate_per_second>9.9999997764825821e-003</detect_weight_learn_rate_per_second>
+<detect_init_mode_weight>1.0000000474974513e-003</detect_init_mode_weight>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/SigmaDeltaBGS.xml b/vs2013mfc/config/SigmaDeltaBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f1b2b2f54d8a9dd555297315cbb96217efb2d533
--- /dev/null
+++ b/vs2013mfc/config/SigmaDeltaBGS.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<ampFactor>1</ampFactor>
+<minVar>15</minVar>
+<maxVar>255</maxVar>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/StaticFrameDifferenceBGS.xml b/vs2013mfc/config/StaticFrameDifferenceBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..943a6c91f4eb5c48a786cd59ee1b73456090d365
--- /dev/null
+++ b/vs2013mfc/config/StaticFrameDifferenceBGS.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<enableThreshold>1</enableThreshold>
+<threshold>15</threshold>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/SuBSENSEBGS.xml b/vs2013mfc/config/SuBSENSEBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..05509c15a8c0cf70db253d9ad5a90f3bfe819942
--- /dev/null
+++ b/vs2013mfc/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/vs2013mfc/config/T2FGMM_UM.xml b/vs2013mfc/config/T2FGMM_UM.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d2f1054e0517b8df10af55e715c94e9add632edc
--- /dev/null
+++ b/vs2013mfc/config/T2FGMM_UM.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<threshold>9.</threshold>
+<alpha>1.0000000000000000e-002</alpha>
+<km>1.5000000000000000e+000</km>
+<kv>6.0000002384185791e-001</kv>
+<gaussians>3</gaussians>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/T2FGMM_UV.xml b/vs2013mfc/config/T2FGMM_UV.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d2f1054e0517b8df10af55e715c94e9add632edc
--- /dev/null
+++ b/vs2013mfc/config/T2FGMM_UV.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<threshold>9.</threshold>
+<alpha>1.0000000000000000e-002</alpha>
+<km>1.5000000000000000e+000</km>
+<kv>6.0000002384185791e-001</kv>
+<gaussians>3</gaussians>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/T2FMRF_UM.xml b/vs2013mfc/config/T2FMRF_UM.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9a65c57ca90f63d5223752d84191c7e439ff8882
--- /dev/null
+++ b/vs2013mfc/config/T2FMRF_UM.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<threshold>9.</threshold>
+<alpha>1.0000000000000000e-002</alpha>
+<km>2.</km>
+<kv>8.9999997615814209e-001</kv>
+<gaussians>3</gaussians>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/T2FMRF_UV.xml b/vs2013mfc/config/T2FMRF_UV.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9a65c57ca90f63d5223752d84191c7e439ff8882
--- /dev/null
+++ b/vs2013mfc/config/T2FMRF_UV.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<threshold>9.</threshold>
+<alpha>1.0000000000000000e-002</alpha>
+<km>2.</km>
+<kv>8.9999997615814209e-001</kv>
+<gaussians>3</gaussians>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/VuMeter.xml b/vs2013mfc/config/VuMeter.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d28fda7ae34e3840df1b0695eea314fd7078756b
--- /dev/null
+++ b/vs2013mfc/config/VuMeter.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<enableFilter>1</enableFilter>
+<binSize>8</binSize>
+<alpha>9.9500000000000000e-001</alpha>
+<threshold>2.9999999999999999e-002</threshold>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/config/WeightedMovingMeanBGS.xml b/vs2013mfc/config/WeightedMovingMeanBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..008ad741b9f0d140beac4eea74daf2c397b70a3c
--- /dev/null
+++ b/vs2013mfc/config/WeightedMovingMeanBGS.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<enableWeight>1</enableWeight>
+<enableThreshold>1</enableThreshold>
+<threshold>15</threshold>
+<showOutput>0</showOutput>
+<showBackground>0</showBackground>
+</opencv_storage>
diff --git a/vs2013mfc/config/WeightedMovingVarianceBGS.xml b/vs2013mfc/config/WeightedMovingVarianceBGS.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d9de1d4f8cd0978018e56d86f536a85ed8e98435
--- /dev/null
+++ b/vs2013mfc/config/WeightedMovingVarianceBGS.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<enableWeight>1</enableWeight>
+<enableThreshold>1</enableThreshold>
+<threshold>15</threshold>
+<showOutput>0</showOutput>
+</opencv_storage>
diff --git a/vs2013mfc/dataset/video.avi b/vs2013mfc/dataset/video.avi
new file mode 100644
index 0000000000000000000000000000000000000000..a29f00658be7d05b10344859e6bee9a501a7a2b1
Binary files /dev/null and b/vs2013mfc/dataset/video.avi differ
diff --git a/vs2013mfc/outputs/background/.gitignore b/vs2013mfc/outputs/background/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..4e2a98bb114355ae964e78a929c12d44f75815de
--- /dev/null
+++ b/vs2013mfc/outputs/background/.gitignore
@@ -0,0 +1,4 @@
+# Ignore everything in this directory
+*
+# Except these files
+!.gitignore
diff --git a/vs2013mfc/outputs/foreground/.gitignore b/vs2013mfc/outputs/foreground/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..4e2a98bb114355ae964e78a929c12d44f75815de
--- /dev/null
+++ b/vs2013mfc/outputs/foreground/.gitignore
@@ -0,0 +1,4 @@
+# Ignore everything in this directory
+*
+# Except these files
+!.gitignore
diff --git a/vs2013mfc/outputs/input/.gitignore b/vs2013mfc/outputs/input/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..4e2a98bb114355ae964e78a929c12d44f75815de
--- /dev/null
+++ b/vs2013mfc/outputs/input/.gitignore
@@ -0,0 +1,4 @@
+# Ignore everything in this directory
+*
+# Except these files
+!.gitignore
diff --git a/vs2013mfc/src/.gitignore b/vs2013mfc/src/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..4ad092eb1e2981311d46fee0774589cf43dcb17a
--- /dev/null
+++ b/vs2013mfc/src/.gitignore
@@ -0,0 +1,6 @@
+Release/
+ipch/
+*.exe
+*.pdb
+*.sdf
+*.opensdf
\ No newline at end of file
diff --git a/vs2013mfc/src/App.cpp b/vs2013mfc/src/App.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a6f45c78da8e675b92213074239b23c9907a1738
--- /dev/null
+++ b/vs2013mfc/src/App.cpp
@@ -0,0 +1,94 @@
+
+// App.cpp : Defines the class behaviors for the application.
+//
+
+#include "stdafx.h"
+#include "App.h"
+#include "Dlg.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+
+// CApp
+
+BEGIN_MESSAGE_MAP(CApp, CWinApp)
+	ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
+END_MESSAGE_MAP()
+
+
+// CApp construction
+
+CApp::CApp()
+{
+	// support Restart Manager
+	m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
+
+	// TODO: add construction code here,
+	// Place all significant initialization in InitInstance
+}
+
+
+// The one and only CApp object
+
+CApp theApp;
+
+
+// CApp initialization
+
+BOOL CApp::InitInstance()
+{
+	// InitCommonControlsEx() is required on Windows XP if an application
+	// manifest specifies use of ComCtl32.dll version 6 or later to enable
+	// visual styles.  Otherwise, any window creation will fail.
+	INITCOMMONCONTROLSEX InitCtrls;
+	InitCtrls.dwSize = sizeof(InitCtrls);
+	// Set this to include all the common control classes you want to use
+	// in your application.
+	InitCtrls.dwICC = ICC_WIN95_CLASSES;
+	InitCommonControlsEx(&InitCtrls);
+
+	CWinApp::InitInstance();
+
+
+	AfxEnableControlContainer();
+
+	// Create the shell manager, in case the dialog contains
+	// any shell tree view or shell list view controls.
+	CShellManager *pShellManager = new CShellManager;
+
+	// Standard initialization
+	// If you are not using these features and wish to reduce the size
+	// of your final executable, you should remove from the following
+	// the specific initialization routines you do not need
+	// Change the registry key under which our settings are stored
+	// TODO: You should modify this string to be something appropriate
+	// such as the name of your company or organization
+	SetRegistryKey(_T("Local AppWizard-Generated Applications"));
+
+	CDlg dlg;
+	m_pMainWnd = &dlg;
+	INT_PTR nResponse = dlg.DoModal();
+	if (nResponse == IDOK)
+	{
+		// TODO: Place code here to handle when the dialog is
+		//  dismissed with OK
+	}
+	else if (nResponse == IDCANCEL)
+	{
+		// TODO: Place code here to handle when the dialog is
+		//  dismissed with Cancel
+	}
+
+	// Delete the shell manager created above.
+	if (pShellManager != NULL)
+	{
+		delete pShellManager;
+	}
+
+	// Since the dialog has been closed, return FALSE so that we exit the
+	//  application, rather than start the application's message pump.
+	return FALSE;
+}
+
diff --git a/vs2013mfc/src/App.h b/vs2013mfc/src/App.h
new file mode 100644
index 0000000000000000000000000000000000000000..5ef9764a331791f71d688154f7af484024a9ca7f
--- /dev/null
+++ b/vs2013mfc/src/App.h
@@ -0,0 +1,32 @@
+
+// App.h : main header file for the application
+//
+
+#pragma once
+
+#ifndef __AFXWIN_H__
+	#error "include 'stdafx.h' before including this file for PCH"
+#endif
+
+#include "resource.h"		// main symbols
+
+
+// CApp:
+// See App.cpp for the implementation of this class
+//
+
+class CApp : public CWinApp
+{
+public:
+	CApp();
+
+// Overrides
+public:
+	virtual BOOL InitInstance();
+
+// Implementation
+
+	DECLARE_MESSAGE_MAP()
+};
+
+extern CApp theApp;
\ No newline at end of file
diff --git a/vs2013mfc/src/Dlg.cpp b/vs2013mfc/src/Dlg.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..f39249eb3c7c450e55cb335666b94e7f910928e2
--- /dev/null
+++ b/vs2013mfc/src/Dlg.cpp
@@ -0,0 +1,709 @@
+
+// Dlg.cpp : implementation file
+//
+
+#include "stdafx.h"
+#include "App.h"
+#include "Dlg.h"
+#include "afxdialogex.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+
+// CAboutDlg dialog used for App About
+
+class CAboutDlg : public CDialogEx
+{
+public:
+  CAboutDlg();
+
+// Dialog Data
+  enum { IDD = IDD_ABOUTBOX };
+
+  protected:
+  virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
+
+// Implementation
+protected:
+  DECLARE_MESSAGE_MAP()
+};
+
+CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
+{
+}
+
+void CAboutDlg::DoDataExchange(CDataExchange* pDX)
+{
+  CDialogEx::DoDataExchange(pDX);
+}
+
+BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
+END_MESSAGE_MAP()
+
+
+// CDlg dialog
+
+
+
+
+CDlg::CDlg(CWnd* pParent /*=NULL*/)
+  : CDialogEx(CDlg::IDD, pParent)
+{
+  m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
+}
+
+void CDlg::DoDataExchange(CDataExchange* pDX)
+{
+  CDialogEx::DoDataExchange(pDX);
+  DDX_Control(pDX, IDC_COMBO_BGSLIST, m_bgslist);
+  DDX_Control(pDX, IDC_LOG, m_log);
+  DDX_Control(pDX, IDC_INPUT_VIDEO, m_inputVideo);
+  DDX_Control(pDX, IDC_USE_WEBCAM, m_useWebCam);
+  DDX_Control(pDX, IDC_SPIN_WEBCAM_INDEX, m_spinWebCamIndex);
+  DDX_Control(pDX, IDC_EDIT_WEBCAM_INDEX, m_webCamIndex);
+  DDX_Control(pDX, IDC_FRAME_NUMBER, m_frameNumber);
+  DDX_Control(pDX, IDC_SAVE_FRAME, m_saveFrame);
+  DDX_Control(pDX, IDC_SAVE_MASK, m_saveMask);
+  DDX_Control(pDX, IDC_SAVE_BKG, m_saveBkg);
+  DDX_Control(pDX, IDC_IMG_SEQ, m_isImgSeq);
+  DDX_Control(pDX, IDC_EDIT_START_IDX, m_startIdx);
+  DDX_Control(pDX, IDC_EDIT_STOP_IDX, m_stopIdx);
+  DDX_Control(pDX, IDC_COMBO_FILE_TYPE, m_fileTypeList);
+  DDX_Control(pDX, IDC_SPIN_START_IDX, m_spinStartIdx);
+  DDX_Control(pDX, IDC_SPIN_STOP_IDX, m_spinStopIdx);
+  DDX_Control(pDX, IDC_EDIT_DELAY, m_delay);
+  DDX_Control(pDX, IDC_EXEC_TIME, m_execTime);
+  DDX_Control(pDX, IDC_MEDIAN_FILTER, m_medianFilter);
+}
+
+BEGIN_MESSAGE_MAP(CDlg, CDialogEx)
+  ON_WM_SYSCOMMAND()
+  ON_WM_PAINT()
+  ON_WM_QUERYDRAGICON()
+  ON_BN_CLICKED(IDSTART, &CDlg::OnBnClickedStart)
+  ON_BN_CLICKED(IDSTOP, &CDlg::OnBnClickedStop)
+  ON_BN_CLICKED(IDC_USE_WEBCAM, &CDlg::OnBnClickedUseWebcam)
+  ON_BN_CLICKED(IDC_IMG_SEQ, &CDlg::OnBnClickedImgSeq)
+  ON_BN_CLICKED(IDSAVE, &CDlg::OnBnClickedSave)
+END_MESSAGE_MAP()
+
+
+// CDlg message handlers
+
+BOOL CDlg::OnInitDialog()
+{
+  CDialogEx::OnInitDialog();
+
+  // Add "About..." menu item to system menu.
+
+  // IDM_ABOUTBOX must be in the system command range.
+  ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
+  ASSERT(IDM_ABOUTBOX < 0xF000);
+
+  CMenu* pSysMenu = GetSystemMenu(FALSE);
+  if (pSysMenu != NULL)
+  {
+    BOOL bNameValid;
+    CString strAboutMenu;
+    bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
+    ASSERT(bNameValid);
+    if (!strAboutMenu.IsEmpty())
+    {
+      pSysMenu->AppendMenu(MF_SEPARATOR);
+      pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
+    }
+  }
+
+  // Set the icon for this dialog.  The framework does this automatically
+  //  when the application's main window is not a dialog
+  SetIcon(m_hIcon, TRUE);			// Set big icon
+  SetIcon(m_hIcon, FALSE);		// Set small icon
+
+  // TODO: Add extra initialization here
+  methodName = L"";
+  useWebCam = false;
+  useImgSeq = false;
+  filePath = L"";
+  bgs = NULL;
+  webCamIndex = 0;
+  m_spinWebCamIndex.SetRange(0, 9); 
+  m_spinStartIdx.SetRange(0, 999999);
+  m_spinStopIdx.SetRange(0, 999999);
+  m_frameNumber.SetWindowTextW(L"0");
+  
+  addBgsList();
+  m_fileTypeList.AddString(L"PNG");
+  m_fileTypeList.AddString(L"JPG");
+  m_fileTypeList.AddString(L"JPEG");
+  m_fileTypeList.AddString(L"JPE");
+  m_fileTypeList.AddString(L"JP2");
+  m_fileTypeList.AddString(L"BMP");
+  m_fileTypeList.AddString(L"DIB");
+  m_fileTypeList.AddString(L"PBM");
+  m_fileTypeList.AddString(L"PGM");
+  m_fileTypeList.AddString(L"PPM");
+  m_fileTypeList.AddString(L"SR");
+  m_fileTypeList.AddString(L"RAS");
+  m_fileTypeList.AddString(L"TIFF");
+  m_fileTypeList.AddString(L"TIF");
+  m_fileTypeList.SelectString(0,L"PNG");
+  m_inputVideo.SetWindowTextW(L"dataset/video.avi");
+  m_delay.SetWindowTextW(L"1");
+  m_execTime.SetWindowTextW(L"0");
+  
+  started = false;
+  if(started == false)
+  {
+    cv::namedWindow("INPUT", 1);
+    HWND hWnd = (HWND) cvGetWindowHandle("INPUT");
+    HWND hParent = ::GetParent(hWnd);
+    ::SetParent(hWnd, GetDlgItem(IDC_FRAME_INPUT)->m_hWnd);
+    ::ShowWindow(hParent, SW_HIDE);
+  }
+
+  if(started == false)
+  {
+    cv::namedWindow("MASK", 1);
+    HWND hWnd = (HWND) cvGetWindowHandle("MASK");
+    HWND hParent = ::GetParent(hWnd);
+    ::SetParent(hWnd, GetDlgItem(IDC_FRAME_MASK)->m_hWnd);
+    ::ShowWindow(hParent, SW_HIDE);
+  }
+
+  if(started == false)
+  {
+    cv::namedWindow("BKG", 1);
+    HWND hWnd = (HWND) cvGetWindowHandle("BKG");
+    HWND hParent = ::GetParent(hWnd);
+    ::SetParent(hWnd, GetDlgItem(IDC_FRAME_BKG)->m_hWnd);
+    ::ShowWindow(hParent, SW_HIDE);
+  }
+
+  return TRUE;  // return TRUE  unless you set the focus to a control
+}
+
+void CDlg::OnSysCommand(UINT nID, LPARAM lParam)
+{
+  if ((nID & 0xFFF0) == IDM_ABOUTBOX)
+  {
+    CAboutDlg dlgAbout;
+    dlgAbout.DoModal();
+  }
+  else
+  {
+    CDialogEx::OnSysCommand(nID, lParam);
+  }
+}
+
+// If you add a minimize button to your dialog, you will need the code below
+//  to draw the icon.  For MFC applications using the document/view model,
+//  this is automatically done for you by the framework.
+
+void CDlg::OnPaint()
+{
+  if (IsIconic())
+  {
+    CPaintDC dc(this); // device context for painting
+
+    SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
+
+    // Center icon in client rectangle
+    int cxIcon = GetSystemMetrics(SM_CXICON);
+    int cyIcon = GetSystemMetrics(SM_CYICON);
+    CRect rect;
+    GetClientRect(&rect);
+    int x = (rect.Width() - cxIcon + 1) / 2;
+    int y = (rect.Height() - cyIcon + 1) / 2;
+
+    // Draw the icon
+    dc.DrawIcon(x, y, m_hIcon);
+  }
+  else
+  {
+    CDialogEx::OnPaint();
+  }
+}
+
+// The system calls this function to obtain the cursor to display while the user drags
+//  the minimized window.
+HCURSOR CDlg::OnQueryDragIcon()
+{
+  return static_cast<HCURSOR>(m_hIcon);
+}
+
+void CDlg::addBgsList()
+{
+  // 37 algorithms
+  m_bgslist.AddString(L"FrameDifferenceBGS");
+  m_bgslist.AddString(L"StaticFrameDifferenceBGS");
+  m_bgslist.AddString(L"WeightedMovingMeanBGS");
+  m_bgslist.AddString(L"WeightedMovingVarianceBGS");
+  m_bgslist.AddString(L"MixtureOfGaussianV1BGS");
+  m_bgslist.AddString(L"MixtureOfGaussianV2BGS");
+  m_bgslist.AddString(L"AdaptiveBackgroundLearning");
+  m_bgslist.AddString(L"AdaptiveSelectiveBackgroundLearning");
+  m_bgslist.AddString(L"GMG");
+  m_bgslist.AddString(L"DPAdaptiveMedianBGS");
+  m_bgslist.AddString(L"DPGrimsonGMMBGS");
+  m_bgslist.AddString(L"DPZivkovicAGMMBGS");
+  m_bgslist.AddString(L"DPMeanBGS");
+  m_bgslist.AddString(L"DPWrenGABGS");
+  m_bgslist.AddString(L"DPPratiMediodBGS");
+  m_bgslist.AddString(L"DPEigenbackgroundBGS");
+  m_bgslist.AddString(L"DPTextureBGS");
+  m_bgslist.AddString(L"T2FGMM_UM");
+  m_bgslist.AddString(L"T2FGMM_UV");
+  m_bgslist.AddString(L"T2FMRF_UM");
+  m_bgslist.AddString(L"T2FMRF_UV");
+  m_bgslist.AddString(L"FuzzySugenoIntegral");
+  m_bgslist.AddString(L"FuzzyChoquetIntegral");
+  m_bgslist.AddString(L"LBSimpleGaussian");
+  m_bgslist.AddString(L"LBFuzzyGaussian");
+  m_bgslist.AddString(L"LBMixtureOfGaussians");
+  m_bgslist.AddString(L"LBAdaptiveSOM");
+  m_bgslist.AddString(L"LBFuzzyAdaptiveSOM");
+  m_bgslist.AddString(L"MultiLayerBGS");
+  //m_bgslist.AddString(L"PBAS");
+  m_bgslist.AddString(L"VuMeter");
+  m_bgslist.AddString(L"KDE");
+  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()
+{
+  int nIndex = m_bgslist.GetCurSel();
+  if(nIndex != CB_ERR)
+  {
+    m_bgslist.GetLBText(nIndex, methodName);
+    return true;
+  }
+  else
+  {
+    AfxMessageBox(L"Please, select one background subtraction method!");
+    return false;
+  }
+}
+
+bool CDlg::getFileType()
+{
+  int nIndex = m_fileTypeList.GetCurSel();
+  if(nIndex != CB_ERR)
+  {
+    m_fileTypeList.GetLBText(nIndex, fileType);
+    return true;
+  }
+  else
+  {
+    AfxMessageBox(L"Please, select one file type or extension!");
+    return false;
+  }
+}
+
+bool CDlg::getInputVideoFilePath()
+{
+  m_inputVideo.GetWindowTextW(filePath);
+
+  if(filePath.GetLength() > 0)
+    return true;
+  else
+  {
+    AfxMessageBox(L"Please, select one video file or image sequence folder!");
+    return false;
+  }
+}
+
+void CDlg::OnBnClickedStart()
+{
+  if(started == false)
+  {
+    m_log.SetWindowTextW(L"Checking...");
+
+    if(!getBgsMethodName())
+    {
+      m_log.SetWindowTextW(L"Stopped...");
+      return;
+    }
+    
+    useWebCam = false;
+    if(m_useWebCam.GetCheck() == BST_CHECKED)
+      useWebCam = true;
+    
+    useImgSeq = false;
+    if(m_isImgSeq.GetCheck() == BST_CHECKED)
+    {
+      useImgSeq = true;
+
+      if(!getFileType())
+      {
+        m_log.SetWindowTextW(L"Stopped...");
+        return;
+      }
+    }
+
+    if(useWebCam == false)
+      if(!getInputVideoFilePath())
+      {
+        m_log.SetWindowTextW(L"Stopped...");
+        return;
+      }
+  
+    m_log.SetWindowTextW(L"Starting...");
+    thread = AfxBeginThread((AFX_THREADPROC) CDlg::Thread, (LPVOID) this);
+  }
+  else
+  {
+    AfxMessageBox(L"Thread is already initialized!");
+    return;
+  }
+}
+
+DWORD CDlg::Thread(LPVOID *lpvParam)
+{
+  CDlg *thr = (CDlg*) lpvParam;
+  thr->ThreadProcess();
+  return NULL;
+}
+
+void CDlg::ThreadProcess()
+{
+  CString csStartIdx;
+  m_startIdx.GetWindowTextW(csStartIdx);
+  startIdx = _tstoi(csStartIdx);
+
+  CString csStopIdx;
+  m_stopIdx.GetWindowTextW(csStopIdx);
+  stopIdx = _tstoi(csStopIdx);
+
+  if(useImgSeq == false)
+  {
+    if(useWebCam)
+    {
+      CString strIndex;
+      m_webCamIndex.GetWindowTextW(strIndex);
+      webCamIndex = _tstoi(strIndex);
+      capture = cvCaptureFromCAM(webCamIndex);
+    }
+    else
+    {
+      CStringA file_path_aux(filePath);
+      capture = cvCaptureFromFile((const char *) file_path_aux);
+    }
+  
+    if(!capture)
+    {
+      AfxMessageBox(L"ERROR: Cannot initialize video!");
+      m_log.SetWindowTextW(L"Stopped...");
+      return;
+    }
+  }
+  else
+  {
+    if(stopIdx == 0)
+    {
+      AfxMessageBox(L"Stop index not defined!");
+      return;
+    }
+
+    if(startIdx > stopIdx)
+    {
+      AfxMessageBox(L"Start index is higher than stop index!");
+      return;
+    }
+  }
+
+  /* Background Subtraction Methods */
+  
+  if(methodName == "FrameDifferenceBGS")
+    bgs = new FrameDifferenceBGS;
+  if(methodName == "StaticFrameDifferenceBGS")
+    bgs = new StaticFrameDifferenceBGS;
+  if(methodName == "WeightedMovingMeanBGS")
+    bgs = new WeightedMovingMeanBGS;
+  if(methodName == "WeightedMovingVarianceBGS")
+    bgs = new WeightedMovingVarianceBGS;
+  if(methodName == "MixtureOfGaussianV1BGS")
+    bgs = new MixtureOfGaussianV1BGS;
+  if(methodName == "MixtureOfGaussianV2BGS")
+    bgs = new MixtureOfGaussianV2BGS;
+  if(methodName == "AdaptiveBackgroundLearning")
+    bgs = new AdaptiveBackgroundLearning;
+  if(methodName == "AdaptiveSelectiveBackgroundLearning")
+    bgs = new AdaptiveSelectiveBackgroundLearning;
+  if(methodName == "GMG")
+    bgs = new GMG;
+  
+  if(methodName == "DPAdaptiveMedianBGS")
+    bgs = new DPAdaptiveMedianBGS;
+  if(methodName == "DPGrimsonGMMBGS")
+    bgs = new DPGrimsonGMMBGS;
+  if(methodName == "DPZivkovicAGMMBGS")
+    bgs = new DPZivkovicAGMMBGS;
+  if(methodName == "DPMeanBGS")
+    bgs = new DPMeanBGS;
+  if(methodName == "DPWrenGABGS")
+    bgs = new DPWrenGABGS;
+  if(methodName == "DPPratiMediodBGS")
+    bgs = new DPPratiMediodBGS;
+  if(methodName == "DPEigenbackgroundBGS")
+    bgs = new DPEigenbackgroundBGS;
+  if(methodName == "DPTextureBGS")
+    bgs = new DPTextureBGS;
+
+  if(methodName == "T2FGMM_UM")
+    bgs = new T2FGMM_UM;
+  if(methodName == "T2FGMM_UV")
+    bgs = new T2FGMM_UV;
+  if(methodName == "T2FMRF_UM")
+    bgs = new T2FMRF_UM;
+  if(methodName == "T2FMRF_UV")
+    bgs = new T2FMRF_UV;
+  if(methodName == "FuzzySugenoIntegral")
+    bgs = new FuzzySugenoIntegral;
+  if(methodName == "FuzzyChoquetIntegral")
+    bgs = new FuzzyChoquetIntegral;
+
+  if(methodName == "LBSimpleGaussian")
+    bgs = new LBSimpleGaussian;
+  if(methodName == "LBFuzzyGaussian")
+    bgs = new LBFuzzyGaussian;
+  if(methodName == "LBMixtureOfGaussians")
+    bgs = new LBMixtureOfGaussians;
+  if(methodName == "LBAdaptiveSOM")
+    bgs = new LBAdaptiveSOM;
+  if(methodName == "LBFuzzyAdaptiveSOM")
+    bgs = new LBFuzzyAdaptiveSOM;
+  if(methodName == "MultiLayerBGS")
+    bgs = new MultiLayerBGS;
+  //if(methodName == "PBAS")
+    //bgs = new PixelBasedAdaptiveSegmenter;
+  if(methodName == "VuMeter")
+    bgs = new VuMeter;
+  if(methodName == "KDE")
+    bgs = new KDE;
+  if(methodName == "IndependentMultimodalBGS")
+    bgs = new IndependentMultimodalBGS;
+  if(methodName == "SJN_MultiCueBGS")
+    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)
+  {
+    AfxMessageBox(L"BGS object not defined!");
+    return;
+  }
+
+  started = true;
+  int i = 0;
+  if(useImgSeq == true && startIdx > 0)
+       i = startIdx - 1;
+  CString strFrameNumber;
+  CString strExecTime;
+  cv::Size default_size;
+  default_size.width = 235;
+  default_size.height = 189;
+  IplImage* frame;
+  std::string input_filename;
+  cv::Mat img_input;
+  // Convert a TCHAR string to a LPCSTR
+  CT2CA fileType2(fileType);
+  CT2CA filePath2(filePath);
+  // construct a std::string using the LPCSTR input
+  std::string str_fileType(fileType2);
+  std::string str_filePath(filePath2);
+  // delay
+  CString csDelay;
+  m_delay.GetWindowTextW(csDelay);
+  int delay = _tstoi(csDelay);
+  
+  do
+  {
+    m_log.SetWindowTextW(L"Running...");
+
+    i++;
+    //::Sleep(1);
+
+    if(useImgSeq == true && i == (stopIdx + 1))
+      break;
+
+    if(useImgSeq)
+    {
+      input_filename = str_filePath + "\\" + boost::lexical_cast<std::string>(i) + "." + str_fileType;
+      img_input = cv::imread(input_filename);
+
+      CString input_filename2(input_filename.c_str());
+      m_log.SetWindowTextW(input_filename2);
+
+      strFrameNumber.Format(L"%d",i);
+      m_frameNumber.SetWindowTextW(strFrameNumber);
+
+      if(img_input.data == NULL)
+      {
+        AfxMessageBox(L"File can not be read!");
+        break;
+      }
+    }
+    else
+    {
+      if(useWebCam == false && stopIdx >= 2 && i > stopIdx)
+        break;
+
+      frame = cvQueryFrame(capture);
+      if(!frame)
+        break;
+      
+      if(useWebCam == false && startIdx >= 2 && i < startIdx)
+        continue;
+
+      img_input = cv::Mat(frame,true);
+    }
+
+    cv::Mat img_mask;
+    cv::Mat img_bkg;
+    Clock::time_point t0 = Clock::now();
+    bgs->process(img_input, img_mask, img_bkg);
+    Clock::time_point t1 = Clock::now();
+    auto d = boost::chrono::duration_cast<milliseconds>(t1 - t0);
+    //std::cout << "\nElapsed time: " << d.count() << "ms" << std::endl;
+    
+    cv::Mat img_input_aux;
+    cv::resize(img_input, img_input_aux, default_size);
+
+    cv::Mat img_mask_aux;
+    if(img_mask.empty())
+      img_mask = cv::Mat::zeros(cv::Size(img_input.size().width, img_input.size().height), img_input.type());
+    if(m_medianFilter.GetCheck() == BST_CHECKED)
+      cv::medianBlur(img_mask, img_mask, 5);
+    cv::resize(img_mask, img_mask_aux, default_size);
+
+    cv::Mat img_bgk_aux;
+    if(img_bkg.empty())
+      img_bkg = cv::Mat::zeros(cv::Size(img_input.size().width, img_input.size().height), img_input.type());
+    cv::resize(img_bkg, img_bgk_aux, default_size);
+    
+    cv::imshow("INPUT", img_input_aux);
+    cv::imshow("MASK", img_mask_aux);
+    cv::imshow("BKG", img_bgk_aux);
+
+    extern_input_filename = "outputs/input/" + boost::lexical_cast<std::string>(i)+".png";
+    img_input.copyTo(extern_input_img);
+    if(m_saveFrame.GetCheck() == BST_CHECKED)
+      cv::imwrite(extern_input_filename, img_input);
+    
+    extern_fg_filename = "outputs/foreground/" + boost::lexical_cast<std::string>(i)+".png";
+    img_mask.copyTo(extern_fg_img);
+    if(m_saveMask.GetCheck() == BST_CHECKED)
+      cv::imwrite(extern_fg_filename, img_mask);
+    
+    extern_bg_filename = "outputs/background/" + boost::lexical_cast<std::string>(i)+".png";
+    img_bkg.copyTo(extern_bg_img);
+    if(m_saveBkg.GetCheck() == BST_CHECKED)
+      cv::imwrite(extern_bg_filename, img_bkg);
+    
+    strFrameNumber.Format(L"%d",i);
+    m_frameNumber.SetWindowTextW(strFrameNumber);
+
+    //strExecTime.Format(_T("%.2f"), d.count());
+    strExecTime.Format(_T("%d"), d.count());
+    m_execTime.SetWindowTextW(strExecTime);
+
+    ::Sleep(delay);
+
+  }while(1);
+  
+  delete bgs;
+  
+  if(!useImgSeq)
+    cvReleaseCapture(&capture);
+
+  //AfxMessageBox(L"Thread is finished!");
+  m_log.SetWindowTextW(L"Finished!");
+  started = false;
+}
+
+
+void CDlg::OnBnClickedStop()
+{
+  if(started)
+  {
+    m_log.SetWindowTextW(L"Stopping...");
+  
+    StopThread();
+
+    if(!useImgSeq)
+      if(capture)
+        cvReleaseCapture(&capture);
+
+    delete bgs;
+    bgs = NULL;
+
+    m_log.SetWindowTextW(L"Stopped!");
+    started = false;
+  }
+}
+
+void CDlg::StopThread()
+{
+  DWORD exit_code = NULL;
+
+  if(thread != NULL)
+  {
+    GetExitCodeThread(thread->m_hThread, &exit_code);
+    
+    if(exit_code == STILL_ACTIVE)
+    {
+      ::TerminateThread(thread->m_hThread, 0);
+      CloseHandle(thread->m_hThread);
+    }
+
+    thread->m_hThread = NULL;
+    thread = NULL;
+  }
+}
+
+void CDlg::OnBnClickedUseWebcam()
+{
+  if(m_useWebCam.GetCheck() == BST_CHECKED)
+    m_isImgSeq.SetCheck(BST_UNCHECKED);
+  
+  m_inputVideo.EnableFileBrowseButton();
+}
+
+void CDlg::OnBnClickedImgSeq()
+{
+  if(m_isImgSeq.GetCheck() == BST_CHECKED)
+  {
+    m_inputVideo.EnableFolderBrowseButton();
+    m_useWebCam.SetCheck(BST_UNCHECKED);
+  }
+  else
+  {
+    m_startIdx.SetWindowTextW(L"0");
+    m_stopIdx.SetWindowTextW(L"0");
+    m_inputVideo.EnableFileBrowseButton();
+  }
+}
+
+void CDlg::OnBnClickedSave()
+{
+  if(m_saveFrame.GetCheck() == BST_CHECKED)
+    cv::imwrite(extern_input_filename, extern_input_img);
+
+  if(m_saveMask.GetCheck() == BST_CHECKED)
+    cv::imwrite(extern_fg_filename, extern_fg_img);
+
+  if(m_saveBkg.GetCheck() == BST_CHECKED)
+    cv::imwrite(extern_bg_filename, extern_bg_img);
+
+  m_log.SetWindowTextW(L"OK! Saved!");
+}
diff --git a/vs2013mfc/src/Dlg.h b/vs2013mfc/src/Dlg.h
new file mode 100644
index 0000000000000000000000000000000000000000..479d7271be837a490bf17915279e371f41461e85
--- /dev/null
+++ b/vs2013mfc/src/Dlg.h
@@ -0,0 +1,92 @@
+
+// Dlg.h : header file
+//
+
+#pragma once
+#include "stdafx.h"
+#include "afxwin.h"
+#include "afxcmn.h"
+
+// CDlg dialog
+class CDlg : public CDialogEx
+{
+// Construction
+public:
+  CDlg(CWnd* pParent = NULL);	// standard constructor
+
+// Dialog Data
+  enum { IDD = IDD_APP };
+
+  protected:
+  virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
+
+
+// Implementation
+protected:
+  HICON m_hIcon;
+
+  // Generated message map functions
+  virtual BOOL OnInitDialog();
+  afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
+  afx_msg void OnPaint();
+  afx_msg HCURSOR OnQueryDragIcon();
+  DECLARE_MESSAGE_MAP()
+
+private:
+  bool started;
+  CWinThread* thread;
+  CvCapture* capture;
+  IBGS* bgs;
+  CString methodName;
+  CString fileType;
+  bool useWebCam;
+  bool useImgSeq;
+  int webCamIndex;
+  int startIdx;
+  int stopIdx;
+  int extern_i;
+  std::string extern_input_filename;
+  cv::Mat extern_input_img;
+  std::string extern_fg_filename;
+  cv::Mat extern_fg_img;
+  std::string extern_bg_filename;
+  cv::Mat extern_bg_img;
+
+  CString filePath;
+
+public:
+  afx_msg void ThreadProcess();
+  static DWORD Thread(LPVOID *x);
+  afx_msg void StopThread();
+  afx_msg bool ipDraw(HDC hdc, IplImage* img, int xoffset=0, int yoffset=0);
+
+public:
+  void addBgsList();
+  bool getBgsMethodName();
+  CComboBox m_bgslist;
+  afx_msg void OnBnClickedStart();
+  CStatic m_log;
+  CMFCEditBrowseCtrl m_inputVideo;
+  bool getInputVideoFilePath();
+  CButton m_useWebCam;
+  afx_msg void OnBnClickedStop();
+  CSpinButtonCtrl m_spinWebCamIndex;
+  CEdit m_webCamIndex;
+  CStatic m_frameNumber;
+  CButton m_saveFrame;
+  CButton m_saveMask;
+  CButton m_saveBkg;
+  CButton m_isImgSeq;
+  CEdit m_startIdx;
+  CEdit m_stopIdx;
+  CComboBox m_fileTypeList;
+  bool getFileType();
+  CSpinButtonCtrl m_spinStartIdx;
+  CSpinButtonCtrl m_spinStopIdx;
+  afx_msg void OnBnClickedUseWebcam();
+  afx_msg void OnBnClickedImgSeq();
+  CEdit m_delay;
+  CStatic m_execTime;
+  CButton m_medianFilter;
+  afx_msg void OnBnClickedSave();
+};
diff --git a/vs2013mfc/src/ReadMe.txt b/vs2013mfc/src/ReadMe.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0a203a163dcfcf3159d3e76a6253be80610e3fe2
--- /dev/null
+++ b/vs2013mfc/src/ReadMe.txt
@@ -0,0 +1,21 @@
+*** REQUIREMENTS ***
+Certify that you have installed OpenCV 2.4.10 and Boost 1.61 in the following paths:
+C:\OpenCV2.4.10
+C:\boost_1_61_0
+
+INCLUDES:
+	C:\OpenCV2.4.10\build\include;
+	C:\OpenCV2.4.10\build\include\opencv;
+	C:\boost_1_61_0
+
+LIBRAIRIES:
+	C:\OpenCV2.4.10\build\x86\vc12\staticlib\*.lib;
+	C:\boost_1_61_0\lib32-msvc-12.0\libboost_chrono-vc120-mt-s-1_61.lib;
+	C:\boost_1_61_0\lib32-msvc-12.0\libboost_system-vc120-mt-s-1_61.lib
+
+LINK TO DOWNLOAD BOOST 1.61:
+https://sourceforge.net/projects/boost/files/boost-binaries/1.61.0/
+boost_1_61_0-msvc-12.0-32.exe [Visual Studio 2013, x86 (32bits)]
+
+LINK TO DOWNLOAD OPENCV 2.4.10:
+https://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.10/opencv-2.4.10.exe/download
\ No newline at end of file
diff --git a/vs2013mfc/src/bgslibrary_vs2013_mfc.rc b/vs2013mfc/src/bgslibrary_vs2013_mfc.rc
new file mode 100644
index 0000000000000000000000000000000000000000..4a3eea2983c976332f56420b110ec40bc85a15f3
Binary files /dev/null and b/vs2013mfc/src/bgslibrary_vs2013_mfc.rc differ
diff --git a/vs2013mfc/src/bgslibrary_vs2013_mfc.sln b/vs2013mfc/src/bgslibrary_vs2013_mfc.sln
new file mode 100644
index 0000000000000000000000000000000000000000..1941c5d01138508ee5d823c61cdce681a348d93e
--- /dev/null
+++ b/vs2013mfc/src/bgslibrary_vs2013_mfc.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2013
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bgslibrary_vs2013_mfc", "bgslibrary_vs2013_mfc.vcxproj", "{236E77EE-00D6-4B4E-80C7-C38847B1B60E}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{236E77EE-00D6-4B4E-80C7-C38847B1B60E}.Debug|Win32.ActiveCfg = Debug|Win32
+		{236E77EE-00D6-4B4E-80C7-C38847B1B60E}.Debug|Win32.Build.0 = Debug|Win32
+		{236E77EE-00D6-4B4E-80C7-C38847B1B60E}.Release|Win32.ActiveCfg = Release|Win32
+		{236E77EE-00D6-4B4E-80C7-C38847B1B60E}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/vs2013mfc/src/bgslibrary_vs2013_mfc.vcxproj b/vs2013mfc/src/bgslibrary_vs2013_mfc.vcxproj
new file mode 100644
index 0000000000000000000000000000000000000000..41da141b4b6b562577686617eb5051e1b1d556eb
--- /dev/null
+++ b/vs2013mfc/src/bgslibrary_vs2013_mfc.vcxproj
@@ -0,0 +1,299 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{236E77EE-00D6-4B4E-80C7-C38847B1B60E}</ProjectGuid>
+    <RootNamespace>bgslibrary_vs2013_mfc</RootNamespace>
+    <Keyword>MFCProj</Keyword>
+    <ProjectName>bgslibrary_vs2013_mfc</ProjectName>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <CharacterSet>Unicode</CharacterSet>
+    <UseOfMfc>Static</UseOfMfc>
+    <PlatformToolset>v120</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+    <UseOfMfc>Static</UseOfMfc>
+    <PlatformToolset>v120</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>../</OutDir>
+    <TargetName>mfc_bgslibrary</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+    <Midl>
+      <MkTypLibCompatible>false</MkTypLibCompatible>
+      <ValidateAllParameters>true</ValidateAllParameters>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>C:\OpenCV2.4.10\build\include;C:\OpenCV2.4.10\build\include\opencv;C:\boost_1_61_0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>C:\OpenCV2.4.10\build\x86\vc12\staticlib\*.lib;C:\boost_1_61_0\lib32-msvc-12.0\libboost_chrono-vc120-mt-s-1_61.lib;C:\boost_1_61_0\lib32-msvc-12.0\libboost_system-vc120-mt-s-1_61.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>
+      <ValidateAllParameters>true</ValidateAllParameters>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </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_vs2013_mfc.ico" />
+    <None Include="res\bgslibrary_vs2013_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" />
+    <ClInclude Include="..\..\package_bgs\AdaptiveSelectiveBackgroundLearning.h" />
+    <ClInclude Include="..\..\package_bgs\ae\KDE.h" />
+    <ClInclude Include="..\..\package_bgs\ae\KernelTable.h" />
+    <ClInclude Include="..\..\package_bgs\ae\NPBGmodel.h" />
+    <ClInclude Include="..\..\package_bgs\ae\NPBGSubtractor.h" />
+    <ClInclude Include="..\..\package_bgs\av\TBackground.h" />
+    <ClInclude Include="..\..\package_bgs\av\TBackgroundVuMeter.h" />
+    <ClInclude Include="..\..\package_bgs\av\VuMeter.h" />
+    <ClInclude Include="..\..\package_bgs\bl\sdLaMa091.h" />
+    <ClInclude Include="..\..\package_bgs\bl\SigmaDeltaBGS.h" />
+    <ClInclude Include="..\..\package_bgs\bl\stdbool.h" />
+    <ClInclude Include="..\..\package_bgs\db\imbs.hpp" />
+    <ClInclude Include="..\..\package_bgs\db\IndependentMultimodalBGS.h" />
+    <ClInclude Include="..\..\package_bgs\dp\AdaptiveMedianBGS.h" />
+    <ClInclude Include="..\..\package_bgs\dp\Bgs.h" />
+    <ClInclude Include="..\..\package_bgs\dp\BgsParams.h" />
+    <ClInclude Include="..\..\package_bgs\dp\DPAdaptiveMedianBGS.h" />
+    <ClInclude Include="..\..\package_bgs\dp\DPEigenbackgroundBGS.h" />
+    <ClInclude Include="..\..\package_bgs\dp\DPGrimsonGMMBGS.h" />
+    <ClInclude Include="..\..\package_bgs\dp\DPMeanBGS.h" />
+    <ClInclude Include="..\..\package_bgs\dp\DPPratiMediodBGS.h" />
+    <ClInclude Include="..\..\package_bgs\dp\DPTextureBGS.h" />
+    <ClInclude Include="..\..\package_bgs\dp\DPWrenGABGS.h" />
+    <ClInclude Include="..\..\package_bgs\dp\DPZivkovicAGMMBGS.h" />
+    <ClInclude Include="..\..\package_bgs\dp\Eigenbackground.h" />
+    <ClInclude Include="..\..\package_bgs\dp\Error.h" />
+    <ClInclude Include="..\..\package_bgs\dp\GrimsonGMM.h" />
+    <ClInclude Include="..\..\package_bgs\dp\Image.h" />
+    <ClInclude Include="..\..\package_bgs\dp\MeanBGS.h" />
+    <ClInclude Include="..\..\package_bgs\dp\PratiMediodBGS.h" />
+    <ClInclude Include="..\..\package_bgs\dp\TextureBGS.h" />
+    <ClInclude Include="..\..\package_bgs\dp\WrenGA.h" />
+    <ClInclude Include="..\..\package_bgs\dp\ZivkovicAGMM.h" />
+    <ClInclude Include="..\..\package_bgs\FrameDifferenceBGS.h" />
+    <ClInclude Include="..\..\package_bgs\GMG.h" />
+    <ClInclude Include="..\..\package_bgs\IBGS.h" />
+    <ClInclude Include="..\..\package_bgs\jmo\BackgroundSubtractionAPI.h" />
+    <ClInclude Include="..\..\package_bgs\jmo\BGS.h" />
+    <ClInclude Include="..\..\package_bgs\jmo\blob.h" />
+    <ClInclude Include="..\..\package_bgs\jmo\BlobExtraction.h" />
+    <ClInclude Include="..\..\package_bgs\jmo\BlobLibraryConfiguration.h" />
+    <ClInclude Include="..\..\package_bgs\jmo\BlobResult.h" />
+    <ClInclude Include="..\..\package_bgs\jmo\CMultiLayerBGS.h" />
+    <ClInclude Include="..\..\package_bgs\jmo\LocalBinaryPattern.h" />
+    <ClInclude Include="..\..\package_bgs\jmo\MultiLayerBGS.h" />
+    <ClInclude Include="..\..\package_bgs\jmo\OpenCvDataConversion.h" />
+    <ClInclude Include="..\..\package_bgs\lb\BGModel.h" />
+    <ClInclude Include="..\..\package_bgs\lb\BGModelFuzzyGauss.h" />
+    <ClInclude Include="..\..\package_bgs\lb\BGModelFuzzySom.h" />
+    <ClInclude Include="..\..\package_bgs\lb\BGModelGauss.h" />
+    <ClInclude Include="..\..\package_bgs\lb\BGModelMog.h" />
+    <ClInclude Include="..\..\package_bgs\lb\BGModelSom.h" />
+    <ClInclude Include="..\..\package_bgs\lb\LBAdaptiveSOM.h" />
+    <ClInclude Include="..\..\package_bgs\lb\LBFuzzyAdaptiveSOM.h" />
+    <ClInclude Include="..\..\package_bgs\lb\LBFuzzyGaussian.h" />
+    <ClInclude Include="..\..\package_bgs\lb\LBMixtureOfGaussians.h" />
+    <ClInclude Include="..\..\package_bgs\lb\LBSimpleGaussian.h" />
+    <ClInclude Include="..\..\package_bgs\lb\Types.h" />
+    <ClInclude Include="..\..\package_bgs\MixtureOfGaussianV1BGS.h" />
+    <ClInclude Include="..\..\package_bgs\MixtureOfGaussianV2BGS.h" />
+    <ClInclude Include="..\..\package_bgs\sjn\SJN_MultiCueBGS.h" />
+    <ClInclude Include="..\..\package_bgs\StaticFrameDifferenceBGS.h" />
+    <ClInclude Include="..\..\package_bgs\tb\FuzzyChoquetIntegral.h" />
+    <ClInclude Include="..\..\package_bgs\tb\FuzzySugenoIntegral.h" />
+    <ClInclude Include="..\..\package_bgs\tb\FuzzyUtils.h" />
+    <ClInclude Include="..\..\package_bgs\tb\MRF.h" />
+    <ClInclude Include="..\..\package_bgs\tb\PerformanceUtils.h" />
+    <ClInclude Include="..\..\package_bgs\tb\PixelUtils.h" />
+    <ClInclude Include="..\..\package_bgs\tb\T2FGMM.h" />
+    <ClInclude Include="..\..\package_bgs\tb\T2FGMM_UM.h" />
+    <ClInclude Include="..\..\package_bgs\tb\T2FGMM_UV.h" />
+    <ClInclude Include="..\..\package_bgs\tb\T2FMRF.h" />
+    <ClInclude Include="..\..\package_bgs\tb\T2FMRF_UM.h" />
+    <ClInclude Include="..\..\package_bgs\tb\T2FMRF_UV.h" />
+    <ClInclude Include="..\..\package_bgs\WeightedMovingMeanBGS.h" />
+    <ClInclude Include="..\..\package_bgs\WeightedMovingVarianceBGS.h" />
+    <ClInclude Include="Resource.h" />
+    <ClInclude Include="stdafx.h" />
+    <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" />
+    <ClCompile Include="..\..\package_bgs\AdaptiveSelectiveBackgroundLearning.cpp" />
+    <ClCompile Include="..\..\package_bgs\ae\KDE.cpp" />
+    <ClCompile Include="..\..\package_bgs\ae\KernelTable.cpp" />
+    <ClCompile Include="..\..\package_bgs\ae\NPBGmodel.cpp" />
+    <ClCompile Include="..\..\package_bgs\ae\NPBGSubtractor.cpp" />
+    <ClCompile Include="..\..\package_bgs\av\TBackground.cpp" />
+    <ClCompile Include="..\..\package_bgs\av\TBackgroundVuMeter.cpp" />
+    <ClCompile Include="..\..\package_bgs\av\VuMeter.cpp" />
+    <ClCompile Include="..\..\package_bgs\bl\sdLaMa091.cpp" />
+    <ClCompile Include="..\..\package_bgs\bl\SigmaDeltaBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\db\imbs.cpp" />
+    <ClCompile Include="..\..\package_bgs\db\IndependentMultimodalBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\AdaptiveMedianBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\DPAdaptiveMedianBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\DPEigenbackgroundBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\DPGrimsonGMMBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\DPMeanBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\DPPratiMediodBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\DPTextureBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\DPWrenGABGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\DPZivkovicAGMMBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\Eigenbackground.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\Error.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\GrimsonGMM.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\Image.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\MeanBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\PratiMediodBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\TextureBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\WrenGA.cpp" />
+    <ClCompile Include="..\..\package_bgs\dp\ZivkovicAGMM.cpp" />
+    <ClCompile Include="..\..\package_bgs\FrameDifferenceBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\GMG.cpp" />
+    <ClCompile Include="..\..\package_bgs\jmo\blob.cpp" />
+    <ClCompile Include="..\..\package_bgs\jmo\BlobExtraction.cpp" />
+    <ClCompile Include="..\..\package_bgs\jmo\BlobResult.cpp" />
+    <ClCompile Include="..\..\package_bgs\jmo\CMultiLayerBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\jmo\LocalBinaryPattern.cpp" />
+    <ClCompile Include="..\..\package_bgs\jmo\MultiLayerBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\lb\BGModel.cpp" />
+    <ClCompile Include="..\..\package_bgs\lb\BGModelFuzzyGauss.cpp" />
+    <ClCompile Include="..\..\package_bgs\lb\BGModelFuzzySom.cpp" />
+    <ClCompile Include="..\..\package_bgs\lb\BGModelGauss.cpp" />
+    <ClCompile Include="..\..\package_bgs\lb\BGModelMog.cpp" />
+    <ClCompile Include="..\..\package_bgs\lb\BGModelSom.cpp" />
+    <ClCompile Include="..\..\package_bgs\lb\LBAdaptiveSOM.cpp" />
+    <ClCompile Include="..\..\package_bgs\lb\LBFuzzyAdaptiveSOM.cpp" />
+    <ClCompile Include="..\..\package_bgs\lb\LBFuzzyGaussian.cpp" />
+    <ClCompile Include="..\..\package_bgs\lb\LBMixtureOfGaussians.cpp" />
+    <ClCompile Include="..\..\package_bgs\lb\LBSimpleGaussian.cpp" />
+    <ClCompile Include="..\..\package_bgs\MixtureOfGaussianV1BGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\MixtureOfGaussianV2BGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\sjn\SJN_MultiCueBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\StaticFrameDifferenceBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\tb\FuzzyChoquetIntegral.cpp" />
+    <ClCompile Include="..\..\package_bgs\tb\FuzzySugenoIntegral.cpp" />
+    <ClCompile Include="..\..\package_bgs\tb\FuzzyUtils.cpp" />
+    <ClCompile Include="..\..\package_bgs\tb\MRF.cpp" />
+    <ClCompile Include="..\..\package_bgs\tb\PerformanceUtils.cpp" />
+    <ClCompile Include="..\..\package_bgs\tb\PixelUtils.cpp" />
+    <ClCompile Include="..\..\package_bgs\tb\T2FGMM.cpp" />
+    <ClCompile Include="..\..\package_bgs\tb\T2FGMM_UM.cpp" />
+    <ClCompile Include="..\..\package_bgs\tb\T2FGMM_UV.cpp" />
+    <ClCompile Include="..\..\package_bgs\tb\T2FMRF.cpp" />
+    <ClCompile Include="..\..\package_bgs\tb\T2FMRF_UM.cpp" />
+    <ClCompile Include="..\..\package_bgs\tb\T2FMRF_UV.cpp" />
+    <ClCompile Include="..\..\package_bgs\WeightedMovingMeanBGS.cpp" />
+    <ClCompile Include="..\..\package_bgs\WeightedMovingVarianceBGS.cpp" />
+    <ClCompile Include="stdafx.cpp">
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="bgslibrary_vs2013_mfc.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+  <ProjectExtensions>
+    <VisualStudio>
+      <UserProperties RESOURCE_FILE="bgslibrary_vs2013_mfc.rc" />
+    </VisualStudio>
+  </ProjectExtensions>
+</Project>
\ No newline at end of file
diff --git a/vs2013mfc/src/bgslibrary_vs2013_mfc.vcxproj.filters b/vs2013mfc/src/bgslibrary_vs2013_mfc.vcxproj.filters
new file mode 100644
index 0000000000000000000000000000000000000000..94cbcf365cb44acd82f61c8ed412199689c5ade3
--- /dev/null
+++ b/vs2013mfc/src/bgslibrary_vs2013_mfc.vcxproj.filters
@@ -0,0 +1,581 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+    <Filter Include="Header Files\package_bgs">
+      <UniqueIdentifier>{be6b45b0-e96c-4347-a65e-a72506b4195f}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\package_bgs\av">
+      <UniqueIdentifier>{c4756493-26d9-46f4-93d6-024b4d1ca61a}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\package_bgs\dp">
+      <UniqueIdentifier>{a3dff805-136a-4fc5-a8e9-a7eadebcd6f2}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\package_bgs\jmo">
+      <UniqueIdentifier>{d9c40f02-d18f-46bb-a956-522e83a8a2e7}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\package_bgs\lb">
+      <UniqueIdentifier>{77576fcd-de50-4205-8072-cb25a1aab145}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\package_bgs\tb">
+      <UniqueIdentifier>{50f16e47-ef1d-46b0-a0cb-f7c07599cd21}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\package_bgs\ae">
+      <UniqueIdentifier>{704bbcb4-9bbe-4fe1-8a80-78ee8d7f49c5}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\package_bgs\sjn">
+      <UniqueIdentifier>{d365878b-8639-4bfd-8008-adb158c9cd8b}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\package_bgs\db">
+      <UniqueIdentifier>{f7961eef-2755-4712-a9b7-1b840b7936b1}</UniqueIdentifier>
+    </Filter>
+    <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" />
+    <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>
+    <None Include="res\bgslibrary_vs2013_mfc.ico">
+      <Filter>Resource Files</Filter>
+    </None>
+    <None Include="res\bgslibrary_vs2013_mfc.rc2">
+      <Filter>Resource Files</Filter>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="Dlg.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="stdafx.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="targetver.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Resource.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="App.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\AdaptiveBackgroundLearning.h">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\FrameDifferenceBGS.h">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\GMG.h">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\IBGS.h">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\MixtureOfGaussianV1BGS.h">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\MixtureOfGaussianV2BGS.h">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\StaticFrameDifferenceBGS.h">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\WeightedMovingMeanBGS.h">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\WeightedMovingVarianceBGS.h">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\av\TBackground.h">
+      <Filter>Header Files\package_bgs\av</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\av\TBackgroundVuMeter.h">
+      <Filter>Header Files\package_bgs\av</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\av\VuMeter.h">
+      <Filter>Header Files\package_bgs\av</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\jmo\BackgroundSubtractionAPI.h">
+      <Filter>Header Files\package_bgs\jmo</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\jmo\BGS.h">
+      <Filter>Header Files\package_bgs\jmo</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\jmo\blob.h">
+      <Filter>Header Files\package_bgs\jmo</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\jmo\BlobExtraction.h">
+      <Filter>Header Files\package_bgs\jmo</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\jmo\BlobLibraryConfiguration.h">
+      <Filter>Header Files\package_bgs\jmo</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\jmo\BlobResult.h">
+      <Filter>Header Files\package_bgs\jmo</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\jmo\CMultiLayerBGS.h">
+      <Filter>Header Files\package_bgs\jmo</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\jmo\LocalBinaryPattern.h">
+      <Filter>Header Files\package_bgs\jmo</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\jmo\MultiLayerBGS.h">
+      <Filter>Header Files\package_bgs\jmo</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\jmo\OpenCvDataConversion.h">
+      <Filter>Header Files\package_bgs\jmo</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\lb\BGModel.h">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\lb\BGModelFuzzyGauss.h">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\lb\BGModelFuzzySom.h">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\lb\BGModelGauss.h">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\lb\BGModelMog.h">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\lb\BGModelSom.h">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\lb\LBAdaptiveSOM.h">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\lb\LBFuzzyAdaptiveSOM.h">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\lb\LBFuzzyGaussian.h">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\lb\LBMixtureOfGaussians.h">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\lb\LBSimpleGaussian.h">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\lb\Types.h">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\tb\FuzzyChoquetIntegral.h">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\tb\FuzzySugenoIntegral.h">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\tb\FuzzyUtils.h">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\tb\MRF.h">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\tb\PerformanceUtils.h">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\tb\PixelUtils.h">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\tb\T2FGMM.h">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\tb\T2FGMM_UM.h">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\tb\T2FGMM_UV.h">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\tb\T2FMRF.h">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\tb\T2FMRF_UM.h">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\tb\T2FMRF_UV.h">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\ae\KDE.h">
+      <Filter>Header Files\package_bgs\ae</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\ae\KernelTable.h">
+      <Filter>Header Files\package_bgs\ae</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\ae\NPBGmodel.h">
+      <Filter>Header Files\package_bgs\ae</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\ae\NPBGSubtractor.h">
+      <Filter>Header Files\package_bgs\ae</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\AdaptiveMedianBGS.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\Bgs.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\BgsParams.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\DPAdaptiveMedianBGS.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\DPEigenbackgroundBGS.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\DPGrimsonGMMBGS.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\DPMeanBGS.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\DPPratiMediodBGS.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\DPTextureBGS.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\DPWrenGABGS.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\DPZivkovicAGMMBGS.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\Eigenbackground.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\Error.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\GrimsonGMM.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\Image.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\MeanBGS.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\PratiMediodBGS.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\TextureBGS.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\WrenGA.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\dp\ZivkovicAGMM.h">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\sjn\SJN_MultiCueBGS.h">
+      <Filter>Header Files\package_bgs\sjn</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\db\imbs.hpp">
+      <Filter>Header Files\package_bgs\db</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\db\IndependentMultimodalBGS.h">
+      <Filter>Header Files\package_bgs\db</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\AdaptiveSelectiveBackgroundLearning.h">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\bl\sdLaMa091.h">
+      <Filter>Header Files\package_bgs\bl</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\package_bgs\bl\SigmaDeltaBGS.h">
+      <Filter>Header Files\package_bgs\bl</Filter>
+    </ClInclude>
+    <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">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="stdafx.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="App.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\AdaptiveBackgroundLearning.cpp">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\FrameDifferenceBGS.cpp">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\GMG.cpp">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\MixtureOfGaussianV1BGS.cpp">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\MixtureOfGaussianV2BGS.cpp">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\StaticFrameDifferenceBGS.cpp">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\WeightedMovingMeanBGS.cpp">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\WeightedMovingVarianceBGS.cpp">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\av\TBackground.cpp">
+      <Filter>Header Files\package_bgs\av</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\av\TBackgroundVuMeter.cpp">
+      <Filter>Header Files\package_bgs\av</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\av\VuMeter.cpp">
+      <Filter>Header Files\package_bgs\av</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\jmo\blob.cpp">
+      <Filter>Header Files\package_bgs\jmo</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\jmo\BlobExtraction.cpp">
+      <Filter>Header Files\package_bgs\jmo</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\jmo\BlobResult.cpp">
+      <Filter>Header Files\package_bgs\jmo</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\jmo\CMultiLayerBGS.cpp">
+      <Filter>Header Files\package_bgs\jmo</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\jmo\LocalBinaryPattern.cpp">
+      <Filter>Header Files\package_bgs\jmo</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\jmo\MultiLayerBGS.cpp">
+      <Filter>Header Files\package_bgs\jmo</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\lb\BGModel.cpp">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\lb\BGModelFuzzyGauss.cpp">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\lb\BGModelFuzzySom.cpp">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\lb\BGModelGauss.cpp">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\lb\BGModelMog.cpp">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\lb\BGModelSom.cpp">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\lb\LBAdaptiveSOM.cpp">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\lb\LBFuzzyAdaptiveSOM.cpp">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\lb\LBFuzzyGaussian.cpp">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\lb\LBMixtureOfGaussians.cpp">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\lb\LBSimpleGaussian.cpp">
+      <Filter>Header Files\package_bgs\lb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\tb\FuzzyChoquetIntegral.cpp">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\tb\FuzzySugenoIntegral.cpp">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\tb\FuzzyUtils.cpp">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\tb\MRF.cpp">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\tb\PerformanceUtils.cpp">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\tb\PixelUtils.cpp">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\tb\T2FGMM.cpp">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\tb\T2FGMM_UM.cpp">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\tb\T2FGMM_UV.cpp">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\tb\T2FMRF.cpp">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\tb\T2FMRF_UM.cpp">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\tb\T2FMRF_UV.cpp">
+      <Filter>Header Files\package_bgs\tb</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\ae\KDE.cpp">
+      <Filter>Header Files\package_bgs\ae</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\ae\KernelTable.cpp">
+      <Filter>Header Files\package_bgs\ae</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\ae\NPBGmodel.cpp">
+      <Filter>Header Files\package_bgs\ae</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\ae\NPBGSubtractor.cpp">
+      <Filter>Header Files\package_bgs\ae</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\AdaptiveMedianBGS.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\DPAdaptiveMedianBGS.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\DPEigenbackgroundBGS.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\DPGrimsonGMMBGS.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\DPMeanBGS.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\DPPratiMediodBGS.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\DPTextureBGS.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\DPWrenGABGS.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\DPZivkovicAGMMBGS.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\Eigenbackground.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\Error.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\GrimsonGMM.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\Image.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\MeanBGS.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\PratiMediodBGS.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\TextureBGS.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\WrenGA.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\dp\ZivkovicAGMM.cpp">
+      <Filter>Header Files\package_bgs\dp</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\sjn\SJN_MultiCueBGS.cpp">
+      <Filter>Header Files\package_bgs\sjn</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\db\imbs.cpp">
+      <Filter>Header Files\package_bgs\db</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\db\IndependentMultimodalBGS.cpp">
+      <Filter>Header Files\package_bgs\db</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\AdaptiveSelectiveBackgroundLearning.cpp">
+      <Filter>Header Files\package_bgs</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\package_bgs\bl\sdLaMa091.cpp">
+      <Filter>Header Files\package_bgs\bl</Filter>
+    </ClCompile>
+    <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_vs2013_mfc.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/vs2013mfc/src/bgslibrary_vs2013_mfc.vcxproj.user b/vs2013mfc/src/bgslibrary_vs2013_mfc.vcxproj.user
new file mode 100644
index 0000000000000000000000000000000000000000..882b48c8d7ec68d8f657f496796212ce80d27ea7
--- /dev/null
+++ b/vs2013mfc/src/bgslibrary_vs2013_mfc.vcxproj.user
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LocalDebuggerWorkingDirectory>../</LocalDebuggerWorkingDirectory>
+    <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+  </PropertyGroup>
+</Project>
\ No newline at end of file
diff --git a/vs2013mfc/src/res/bgslibrary_vs2013_mfc.ico b/vs2013mfc/src/res/bgslibrary_vs2013_mfc.ico
new file mode 100644
index 0000000000000000000000000000000000000000..d56fbcdfdf6eac0f4727c34770c26689271d96af
Binary files /dev/null and b/vs2013mfc/src/res/bgslibrary_vs2013_mfc.ico differ
diff --git a/vs2013mfc/src/res/bgslibrary_vs2013_mfc.rc2 b/vs2013mfc/src/res/bgslibrary_vs2013_mfc.rc2
new file mode 100644
index 0000000000000000000000000000000000000000..e327fa85913f2210efffc3a01eb0194aadda29e2
Binary files /dev/null and b/vs2013mfc/src/res/bgslibrary_vs2013_mfc.rc2 differ
diff --git a/vs2013mfc/src/resource.h b/vs2013mfc/src/resource.h
new file mode 100644
index 0000000000000000000000000000000000000000..606dd8c2eebd167158db80652c82fc50419d8ec6
Binary files /dev/null and b/vs2013mfc/src/resource.h differ
diff --git a/vs2013mfc/src/stdafx.cpp b/vs2013mfc/src/stdafx.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..9e260e7224cab759fbfae5b285437dcdec4e40db
--- /dev/null
+++ b/vs2013mfc/src/stdafx.cpp
@@ -0,0 +1,8 @@
+
+// stdafx.cpp : source file that includes just the standard includes
+// bgslibrary_vs2010_mfc.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
+
+
diff --git a/vs2013mfc/src/stdafx.h b/vs2013mfc/src/stdafx.h
new file mode 100644
index 0000000000000000000000000000000000000000..4d734a9e557b27d0ff404d1ae85769b66c6e890e
--- /dev/null
+++ b/vs2013mfc/src/stdafx.h
@@ -0,0 +1,104 @@
+
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently,
+// but are changed infrequently
+
+#pragma once
+
+#ifndef _SECURE_ATL
+#define _SECURE_ATL 1
+#endif
+
+#ifndef VC_EXTRALEAN
+#define VC_EXTRALEAN            // Exclude rarely-used stuff from Windows headers
+#endif
+
+#include "targetver.h"
+
+#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS      // some CString constructors will be explicit
+
+// turns off MFC's hiding of some common and often safely ignored warning messages
+#define _AFX_ALL_WARNINGS
+
+#include <afxwin.h>         // MFC core and standard components
+#include <afxext.h>         // MFC extensions
+
+
+#include <afxdisp.h>        // MFC Automation classes
+
+
+
+#ifndef _AFX_NO_OLE_SUPPORT
+#include <afxdtctl.h>           // MFC support for Internet Explorer 4 Common Controls
+#endif
+#ifndef _AFX_NO_AFXCMN_SUPPORT
+#include <afxcmn.h>             // MFC support for Windows Common Controls
+#endif // _AFX_NO_AFXCMN_SUPPORT
+
+#include <afxcontrolbars.h>     // MFC support for ribbons and control bars
+
+#ifdef _UNICODE
+#if defined _M_IX86
+#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
+#elif defined _M_X64
+#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
+#else
+#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
+#endif
+#endif
+
+#include <boost/lexical_cast.hpp>
+#include <boost/chrono.hpp>
+typedef boost::chrono::high_resolution_clock Clock;
+typedef boost::chrono::milliseconds milliseconds;
+typedef boost::chrono::microseconds microseconds;
+
+#include <iostream>
+
+#include <cv.h>
+#include <highgui.h>
+
+// BGSLibrary algorithms
+
+#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"
+#include "../../package_bgs/GMG.h"
+
+#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"
+
+#include "../../package_bgs/jmo/MultiLayerBGS.h"
+//#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"
+
+#include "../../package_bgs/pl/SuBSENSE.h"
+#include "../../package_bgs/pl/LOBSTER.h"
diff --git a/vs2013mfc/src/targetver.h b/vs2013mfc/src/targetver.h
new file mode 100644
index 0000000000000000000000000000000000000000..87c0086de751bac3d47208b77d76b82d78f26702
--- /dev/null
+++ b/vs2013mfc/src/targetver.h
@@ -0,0 +1,8 @@
+#pragma once
+
+// Including SDKDDKVer.h defines the highest available Windows platform.
+
+// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
+// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
+
+#include <SDKDDKVer.h>