From 0100ff04c7bd23ac70f19dcc0019dbb3157a2712 Mon Sep 17 00:00:00 2001
From: Andrews Cordolino Sobral <andrewssobral@gmail.com>
Date: Mon, 18 Jul 2022 23:20:37 +0200
Subject: [PATCH] Disabled LBP_MRF and MultiLayerBGS for OpenCV higher than
 3.4.7

---
 src/FrameProcessor.cpp                        | 63 +++++++++++--------
 src/FrameProcessor.h                          | 18 +++---
 src/algorithms/IBGS.h                         |  4 --
 src/algorithms/LBP_MRF.cpp                    |  2 +-
 src/algorithms/LBP_MRF.h                      |  2 +-
 src/algorithms/LBP_MRF/MEDefs.hpp             |  2 +-
 src/algorithms/LBP_MRF/MEHistogram.cpp        |  2 +-
 src/algorithms/LBP_MRF/MEHistogram.hpp        |  2 +-
 src/algorithms/LBP_MRF/MEImage.cpp            |  2 +-
 src/algorithms/LBP_MRF/MEImage.hpp            |  2 +-
 src/algorithms/LBP_MRF/MotionDetection.cpp    |  2 +-
 src/algorithms/LBP_MRF/MotionDetection.hpp    |  2 +-
 src/algorithms/MultiLayer.cpp                 |  2 +-
 src/algorithms/MultiLayer.h                   |  2 +-
 .../MultiLayer/BackgroundSubtractionAPI.h     |  2 +-
 src/algorithms/MultiLayer/BlobExtraction.cpp  |  2 +-
 src/algorithms/MultiLayer/BlobExtraction.h    |  2 +-
 src/algorithms/MultiLayer/BlobResult.cpp      |  2 +-
 src/algorithms/MultiLayer/BlobResult.h        |  2 +-
 src/algorithms/MultiLayer/CMultiLayerBGS.cpp  |  2 +-
 src/algorithms/MultiLayer/CMultiLayerBGS.h    |  2 +-
 .../MultiLayer/LocalBinaryPattern.cpp         |  2 +-
 .../MultiLayer/LocalBinaryPattern.h           |  2 +-
 .../MultiLayer/OpenCvDataConversion.h         |  2 +-
 src/algorithms/dp/AdaptiveMedianBGS.cpp       |  3 +-
 25 files changed, 71 insertions(+), 59 deletions(-)

diff --git a/src/FrameProcessor.cpp b/src/FrameProcessor.cpp
index 8116df2..558b5c8 100644
--- a/src/FrameProcessor.cpp
+++ b/src/FrameProcessor.cpp
@@ -115,12 +115,6 @@ namespace bgslibrary
     if (enableLBFuzzyAdaptiveSOM)
       lbFuzzyAdaptiveSOM = std::make_shared<LBFuzzyAdaptiveSOM>();
 
-    if (enableLbpMrf)
-      lbpMrf = std::make_shared<LBP_MRF>();
-
-    if (enableMultiLayer)
-      multiLayer = std::make_shared<MultiLayer>();
-
     if (enablePBAS)
       pixelBasedAdaptiveSegmenter = std::make_shared<PixelBasedAdaptiveSegmenter>();
 
@@ -137,6 +131,14 @@ namespace bgslibrary
       multiCue = std::make_shared<MultiCue>();
 #endif
 
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
+    if (enableLbpMrf)
+      lbpMrf = std::make_shared<LBP_MRF>();
+
+    if (enableMultiLayer)
+      multiLayer = std::make_shared<MultiLayer>();
+#endif
+
     if (enableSigmaDelta)
       sigmaDelta = std::make_shared<SigmaDelta>();
 
@@ -277,16 +279,6 @@ namespace bgslibrary
     if (enableLBFuzzyAdaptiveSOM)
       process("LBFuzzyAdaptiveSOM", lbFuzzyAdaptiveSOM, img_preProcessor, img_lbFuzzyAdaptiveSOM);
 
-    if (enableLbpMrf)
-      process("LbpMrf", lbpMrf, img_preProcessor, img_lbpMrf);
-
-    if (enableMultiLayer)
-    {
-      multiLayer->setStatus(MultiLayer::MLBGS_LEARN);
-      //multiLayer->setStatus(MultiLayer::MLBGS_DETECT);
-      process("MultiLayer", multiLayer, img_preProcessor, img_multiLayer);
-    }
-
     if (enablePBAS)
       process("PBAS", pixelBasedAdaptiveSegmenter, img_preProcessor, img_pixelBasedAdaptiveSegmenter);
 
@@ -302,7 +294,19 @@ namespace bgslibrary
     if (enableMultiCue)
       process("MultiCue", multiCue, img_preProcessor, img_multiCue);
 #endif
-    
+
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
+    if (enableLbpMrf)
+      process("LbpMrf", lbpMrf, img_preProcessor, img_lbpMrf);
+
+    if (enableMultiLayer)
+    {
+      multiLayer->setStatus(MultiLayer::MLBGS_LEARN);
+      //multiLayer->setStatus(MultiLayer::MLBGS_DETECT);
+      process("MultiLayer", multiLayer, img_preProcessor, img_multiLayer);
+    }
+#endif
+
     if (enableSigmaDelta)
       process("SigmaDelta", sigmaDelta, img_preProcessor, img_sigmaDelta);
 
@@ -369,8 +373,6 @@ namespace bgslibrary
       foregroundMaskAnalysis->process(frameNumber, "LBMixtureOfGaussians", img_lbMixtureOfGaussians);
       foregroundMaskAnalysis->process(frameNumber, "LBAdaptiveSOM", img_lbAdaptiveSOM);
       foregroundMaskAnalysis->process(frameNumber, "LBFuzzyAdaptiveSOM", img_lbFuzzyAdaptiveSOM);
-      foregroundMaskAnalysis->process(frameNumber, "LbpMrf", img_lbpMrf);
-      foregroundMaskAnalysis->process(frameNumber, "MultiLayer", img_multiLayer);
       foregroundMaskAnalysis->process(frameNumber, "PBAS", img_pixelBasedAdaptiveSegmenter);
       foregroundMaskAnalysis->process(frameNumber, "VuMeter", img_vumeter);
       foregroundMaskAnalysis->process(frameNumber, "KDE", img_kde);
@@ -378,6 +380,11 @@ namespace bgslibrary
       foregroundMaskAnalysis->process(frameNumber, "MultiCue", img_multiCue);
 #endif
 
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
+      foregroundMaskAnalysis->process(frameNumber, "LbpMrf", img_lbpMrf);
+      foregroundMaskAnalysis->process(frameNumber, "MultiLayer", img_multiLayer);
+#endif
+
       foregroundMaskAnalysis->process(frameNumber, "SigmaDelta", img_sigmaDelta);
       foregroundMaskAnalysis->process(frameNumber, "SuBSENSE", img_subSENSE);
       foregroundMaskAnalysis->process(frameNumber, "LOBSTER", img_lobster);
@@ -448,15 +455,18 @@ namespace bgslibrary
     fs << "enableLBMixtureOfGaussians" << enableLBMixtureOfGaussians;
     fs << "enableLBAdaptiveSOM" << enableLBAdaptiveSOM;
     fs << "enableLBFuzzyAdaptiveSOM" << enableLBFuzzyAdaptiveSOM;
-    fs << "enableLbpMrf" << enableLbpMrf;
-    fs << "enableMultiLayer" << enableMultiLayer;
     fs << "enablePBAS" << enablePBAS;
     fs << "enableVuMeter" << enableVuMeter;
     fs << "enableKDE" << enableKDE;
     fs << "enableIMBS" << enableIMBS;
     fs << "enableMultiCue" << enableMultiCue;
 #endif
-    
+
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
+    fs << "enableLbpMrf" << enableLbpMrf;
+    fs << "enableMultiLayer" << enableMultiLayer;
+#endif
+
     fs << "enableSigmaDelta" << enableSigmaDelta;
     fs << "enableSuBSENSE" << enableSuBSENSE;
     fs << "enableLOBSTER" << enableLOBSTER;
@@ -510,15 +520,18 @@ namespace bgslibrary
     fs["enableLBMixtureOfGaussians"] >> enableLBMixtureOfGaussians;
     fs["enableLBAdaptiveSOM"] >> enableLBAdaptiveSOM;
     fs["enableLBFuzzyAdaptiveSOM"] >> enableLBFuzzyAdaptiveSOM;
-    fs["enableLbpMrf"] >> enableLbpMrf;
-    fs["enableMultiLayer"] >> enableMultiLayer;
     fs["enablePBAS"] >> enablePBAS;
     fs["enableVuMeter"] >> enableVuMeter;
     fs["enableKDE"] >> enableKDE;
     fs["enableIMBS"] >> enableIMBS;
     fs["enableMultiCue"] >> enableMultiCue;
 #endif
-    
+
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
+    fs["enableLbpMrf"] >> enableLbpMrf;
+    fs["enableMultiLayer"] >> enableMultiLayer;
+#endif
+
     fs["enableSigmaDelta"] >> enableSigmaDelta;
     fs["enableSuBSENSE"] >> enableSuBSENSE;
     fs["enableLOBSTER"] >> enableLOBSTER;
diff --git a/src/FrameProcessor.h b/src/FrameProcessor.h
index 1eec6d6..fa3b94a 100644
--- a/src/FrameProcessor.h
+++ b/src/FrameProcessor.h
@@ -144,14 +144,6 @@ namespace bgslibrary
     cv::Mat img_lbFuzzyAdaptiveSOM;
     std::shared_ptr<LBFuzzyAdaptiveSOM> lbFuzzyAdaptiveSOM;
     bool enableLBFuzzyAdaptiveSOM = false;
-    
-    cv::Mat img_lbpMrf;
-    std::shared_ptr<LBP_MRF> lbpMrf;
-    bool enableLbpMrf = false;
-
-    cv::Mat img_multiLayer;
-    std::shared_ptr<MultiLayer> multiLayer;
-    bool enableMultiLayer = false;
 
     cv::Mat img_pixelBasedAdaptiveSegmenter;
     std::shared_ptr<PixelBasedAdaptiveSegmenter> pixelBasedAdaptiveSegmenter;
@@ -174,6 +166,16 @@ namespace bgslibrary
     bool enableMultiCue = false;
 #endif
 
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
+    cv::Mat img_lbpMrf;
+    std::shared_ptr<LBP_MRF> lbpMrf;
+    bool enableLbpMrf = false;
+
+    cv::Mat img_multiLayer;
+    std::shared_ptr<MultiLayer> multiLayer;
+    bool enableMultiLayer = false;
+#endif
+
     cv::Mat img_sigmaDelta;
     std::shared_ptr<SigmaDelta> sigmaDelta;
     bool enableSigmaDelta = false;
diff --git a/src/algorithms/IBGS.h b/src/algorithms/IBGS.h
index bbf835f..5dca07d 100644
--- a/src/algorithms/IBGS.h
+++ b/src/algorithms/IBGS.h
@@ -19,10 +19,6 @@
 
 #include "../utils/ILoadSaveConfig.h"
 
-#ifndef CV_RGB
-#define CV_RGB(r, g, b) cv::Scalar((b), (g), (r), 0)
-#endif
-
 #if !defined(bgs_register)
 #define bgs_register(x) static BGS_Register<x> register_##x(quote(x))
 #endif
diff --git a/src/algorithms/LBP_MRF.cpp b/src/algorithms/LBP_MRF.cpp
index e0d4c64..572a14b 100644
--- a/src/algorithms/LBP_MRF.cpp
+++ b/src/algorithms/LBP_MRF.cpp
@@ -1,6 +1,6 @@
 #include "LBP_MRF.h"
 
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 using namespace bgslibrary::algorithms;
 
diff --git a/src/algorithms/LBP_MRF.h b/src/algorithms/LBP_MRF.h
index 0edb387..b7a26c2 100644
--- a/src/algorithms/LBP_MRF.h
+++ b/src/algorithms/LBP_MRF.h
@@ -3,7 +3,7 @@
 #include "IBGS.h"
 
 #include "opencv2/core/version.hpp"
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 #include "LBP_MRF/MotionDetection.hpp"
 
diff --git a/src/algorithms/LBP_MRF/MEDefs.hpp b/src/algorithms/LBP_MRF/MEDefs.hpp
index 386dc96..6c5fc25 100644
--- a/src/algorithms/LBP_MRF/MEDefs.hpp
+++ b/src/algorithms/LBP_MRF/MEDefs.hpp
@@ -1,7 +1,7 @@
 #pragma once
 
 #include "opencv2/core/version.hpp"
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 namespace bgslibrary
 {
diff --git a/src/algorithms/LBP_MRF/MEHistogram.cpp b/src/algorithms/LBP_MRF/MEHistogram.cpp
index 78875dd..6ebb0b1 100644
--- a/src/algorithms/LBP_MRF/MEHistogram.cpp
+++ b/src/algorithms/LBP_MRF/MEHistogram.cpp
@@ -8,7 +8,7 @@
 #include "MEDefs.hpp"
 #include "MEImage.hpp"
 
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 using namespace bgslibrary::algorithms::lbp_mrf;
 
diff --git a/src/algorithms/LBP_MRF/MEHistogram.hpp b/src/algorithms/LBP_MRF/MEHistogram.hpp
index fe0868c..415b0e0 100644
--- a/src/algorithms/LBP_MRF/MEHistogram.hpp
+++ b/src/algorithms/LBP_MRF/MEHistogram.hpp
@@ -1,7 +1,7 @@
 #pragma once
 
 #include "opencv2/core/version.hpp"
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 namespace bgslibrary
 {
diff --git a/src/algorithms/LBP_MRF/MEImage.cpp b/src/algorithms/LBP_MRF/MEImage.cpp
index 7899b52..25a4aa4 100644
--- a/src/algorithms/LBP_MRF/MEImage.cpp
+++ b/src/algorithms/LBP_MRF/MEImage.cpp
@@ -6,7 +6,7 @@
 #include "MEImage.hpp"
 #include "MEDefs.hpp"
 
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 //using namespace bgslibrary::algorithms::lbp_mrf;
 
diff --git a/src/algorithms/LBP_MRF/MEImage.hpp b/src/algorithms/LBP_MRF/MEImage.hpp
index 9bc9e72..b3c6da0 100644
--- a/src/algorithms/LBP_MRF/MEImage.hpp
+++ b/src/algorithms/LBP_MRF/MEImage.hpp
@@ -1,7 +1,7 @@
 #pragma once
 
 #include "opencv2/core/version.hpp"
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 namespace bgslibrary
 {
diff --git a/src/algorithms/LBP_MRF/MotionDetection.cpp b/src/algorithms/LBP_MRF/MotionDetection.cpp
index b434806..c5897ee 100644
--- a/src/algorithms/LBP_MRF/MotionDetection.cpp
+++ b/src/algorithms/LBP_MRF/MotionDetection.cpp
@@ -3,7 +3,7 @@
 
 #include "MotionDetection.hpp"
 
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 #include "graph.h"
 #include "MEHistogram.hpp"
diff --git a/src/algorithms/LBP_MRF/MotionDetection.hpp b/src/algorithms/LBP_MRF/MotionDetection.hpp
index f7720e5..b086471 100644
--- a/src/algorithms/LBP_MRF/MotionDetection.hpp
+++ b/src/algorithms/LBP_MRF/MotionDetection.hpp
@@ -1,7 +1,7 @@
 #pragma once
 
 #include "opencv2/core/version.hpp"
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 #include <opencv2/imgproc/types_c.h>
 
diff --git a/src/algorithms/MultiLayer.cpp b/src/algorithms/MultiLayer.cpp
index 49ad0c5..de972f1 100644
--- a/src/algorithms/MultiLayer.cpp
+++ b/src/algorithms/MultiLayer.cpp
@@ -1,6 +1,6 @@
 #include "MultiLayer.h"
 
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 using namespace bgslibrary::algorithms;
 
diff --git a/src/algorithms/MultiLayer.h b/src/algorithms/MultiLayer.h
index b33d72f..9392e7d 100644
--- a/src/algorithms/MultiLayer.h
+++ b/src/algorithms/MultiLayer.h
@@ -1,7 +1,7 @@
 #pragma once
 
 #include "opencv2/core/version.hpp"
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 #include "IBGS.h"
 #include "MultiLayer/CMultiLayerBGS.h"
diff --git a/src/algorithms/MultiLayer/BackgroundSubtractionAPI.h b/src/algorithms/MultiLayer/BackgroundSubtractionAPI.h
index 13f0208..171e63d 100644
--- a/src/algorithms/MultiLayer/BackgroundSubtractionAPI.h
+++ b/src/algorithms/MultiLayer/BackgroundSubtractionAPI.h
@@ -1,7 +1,7 @@
 #pragma once
 
 #include "opencv2/core/version.hpp"
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 // opencv legacy includes
 #include "OpenCvLegacyIncludes.h"
diff --git a/src/algorithms/MultiLayer/BlobExtraction.cpp b/src/algorithms/MultiLayer/BlobExtraction.cpp
index 6f67a34..91b2004 100644
--- a/src/algorithms/MultiLayer/BlobExtraction.cpp
+++ b/src/algorithms/MultiLayer/BlobExtraction.cpp
@@ -1,5 +1,5 @@
 #include "opencv2/core/version.hpp"
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 #include "BlobResult.h"
 #include "BlobExtraction.h"
diff --git a/src/algorithms/MultiLayer/BlobExtraction.h b/src/algorithms/MultiLayer/BlobExtraction.h
index 71e1f40..c95b0e2 100644
--- a/src/algorithms/MultiLayer/BlobExtraction.h
+++ b/src/algorithms/MultiLayer/BlobExtraction.h
@@ -1,7 +1,7 @@
 #pragma once
 
 #include "opencv2/core/version.hpp"
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 namespace bgslibrary
 {
diff --git a/src/algorithms/MultiLayer/BlobResult.cpp b/src/algorithms/MultiLayer/BlobResult.cpp
index b1a1bf6..be99792 100644
--- a/src/algorithms/MultiLayer/BlobResult.cpp
+++ b/src/algorithms/MultiLayer/BlobResult.cpp
@@ -4,7 +4,7 @@
 #include <algorithm>
 
 #include "opencv2/core/version.hpp"
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 #include "BlobResult.h"
 #include "BlobExtraction.h"
diff --git a/src/algorithms/MultiLayer/BlobResult.h b/src/algorithms/MultiLayer/BlobResult.h
index 2213231..83fff96 100644
--- a/src/algorithms/MultiLayer/BlobResult.h
+++ b/src/algorithms/MultiLayer/BlobResult.h
@@ -5,7 +5,7 @@
 #include <functional>
 
 #include "opencv2/core/version.hpp"
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 #include "BlobLibraryConfiguration.h"
 // opencv legacy includes
diff --git a/src/algorithms/MultiLayer/CMultiLayerBGS.cpp b/src/algorithms/MultiLayer/CMultiLayerBGS.cpp
index b295216..1adce20 100644
--- a/src/algorithms/MultiLayer/CMultiLayerBGS.cpp
+++ b/src/algorithms/MultiLayer/CMultiLayerBGS.cpp
@@ -7,7 +7,7 @@
 #include <iostream>
 
 #include "opencv2/core/version.hpp"
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 #include "CMultiLayerBGS.h"
 #include "OpenCvLegacyIncludes.h"
diff --git a/src/algorithms/MultiLayer/CMultiLayerBGS.h b/src/algorithms/MultiLayer/CMultiLayerBGS.h
index 5ff976c..75b1a70 100644
--- a/src/algorithms/MultiLayer/CMultiLayerBGS.h
+++ b/src/algorithms/MultiLayer/CMultiLayerBGS.h
@@ -21,7 +21,7 @@ step. If you compile it under Linux, please uncomment it.
 #include <opencv2/imgproc.hpp>
 
 #include "opencv2/core/version.hpp"
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 #include "LocalBinaryPattern.h"
 #include "BlobResult.h"
diff --git a/src/algorithms/MultiLayer/LocalBinaryPattern.cpp b/src/algorithms/MultiLayer/LocalBinaryPattern.cpp
index 120e01d..f0d65ed 100644
--- a/src/algorithms/MultiLayer/LocalBinaryPattern.cpp
+++ b/src/algorithms/MultiLayer/LocalBinaryPattern.cpp
@@ -1,7 +1,7 @@
 #include "LocalBinaryPattern.h"
 
 #include "opencv2/core/version.hpp"
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 using namespace bgslibrary::algorithms::multilayer;
 
diff --git a/src/algorithms/MultiLayer/LocalBinaryPattern.h b/src/algorithms/MultiLayer/LocalBinaryPattern.h
index 69a119e..cce9c13 100644
--- a/src/algorithms/MultiLayer/LocalBinaryPattern.h
+++ b/src/algorithms/MultiLayer/LocalBinaryPattern.h
@@ -3,7 +3,7 @@
 #include <cstdio>
 
 #include "opencv2/core/version.hpp"
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 #include "BGS.h"
 #include "OpenCvDataConversion.h"
diff --git a/src/algorithms/MultiLayer/OpenCvDataConversion.h b/src/algorithms/MultiLayer/OpenCvDataConversion.h
index 9e78c6a..52ec57c 100644
--- a/src/algorithms/MultiLayer/OpenCvDataConversion.h
+++ b/src/algorithms/MultiLayer/OpenCvDataConversion.h
@@ -3,7 +3,7 @@
 #include <stdio.h>
 
 #include "opencv2/core/version.hpp"
-#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3 && CV_MINOR_VERSION <= 4 && CV_VERSION_REVISION <= 7
 
 // opencv legacy includes
 #include "OpenCvLegacyIncludes.h"
diff --git a/src/algorithms/dp/AdaptiveMedianBGS.cpp b/src/algorithms/dp/AdaptiveMedianBGS.cpp
index 2609fb0..b29bae5 100644
--- a/src/algorithms/dp/AdaptiveMedianBGS.cpp
+++ b/src/algorithms/dp/AdaptiveMedianBGS.cpp
@@ -1,4 +1,5 @@
 #include "AdaptiveMedianBGS.h"
+#include "opencv2/core/types_c.h"
 
 #if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
 
@@ -8,7 +9,7 @@ void AdaptiveMedianBGS::Initalize(const BgsParams& param)
 {
   m_params = (AdaptiveMedianParams&)param;
   m_median = cvCreateImage(cvSize(m_params.Width(), m_params.Height()), IPL_DEPTH_8U, 3);
-  cvSet(m_median.Ptr(), CV_RGB(BACKGROUND, BACKGROUND, BACKGROUND));
+  cvSet(m_median.Ptr(), cvScalar(CV_RGB(BACKGROUND, BACKGROUND, BACKGROUND)));
 }
 
 RgbImage* AdaptiveMedianBGS::Background()
-- 
GitLab