From 3a27eaff2dc3842cbaa09004dfea025613726659 Mon Sep 17 00:00:00 2001
From: Andrews Sobral <andrewssobral@users.noreply.github.com>
Date: Sun, 23 Feb 2020 00:29:15 +0100
Subject: [PATCH] Fixes to solve the issue related to OpenCV 4.2.0
 https://github.com/andrewssobral/bgslibrary/issues/175 (#176)

---
 src/algorithms/LBP_MRF/MEDefs.cpp                    | 4 ++++
 src/algorithms/LBP_MRF/MEDefs.hpp                    | 5 +++++
 src/algorithms/LBP_MRF/MEHistogram.cpp               | 4 ++++
 src/algorithms/LBP_MRF/MEHistogram.hpp               | 5 +++++
 src/algorithms/LBP_MRF/MEImage.cpp                   | 4 ++++
 src/algorithms/LBP_MRF/MEImage.hpp                   | 5 +++++
 src/algorithms/MultiLayer/BGS.h                      | 5 +++++
 src/algorithms/MultiLayer/BackgroundSubtractionAPI.h | 5 +++++
 src/algorithms/MultiLayer/BlobExtraction.cpp         | 5 +++++
 src/algorithms/MultiLayer/BlobExtraction.h           | 5 +++++
 src/algorithms/MultiLayer/BlobResult.cpp             | 5 +++++
 src/algorithms/MultiLayer/BlobResult.h               | 5 +++++
 src/algorithms/MultiLayer/CMultiLayerBGS.cpp         | 5 +++++
 src/algorithms/MultiLayer/CMultiLayerBGS.h           | 5 +++++
 src/algorithms/MultiLayer/LocalBinaryPattern.cpp     | 4 ++++
 src/algorithms/MultiLayer/LocalBinaryPattern.h       | 5 +++++
 src/algorithms/MultiLayer/OpenCvDataConversion.h     | 6 ++++++
 src/algorithms/MultiLayer/OpenCvLegacyIncludes.h     | 6 ++++++
 src/algorithms/MultiLayer/blob.cpp                   | 5 +++++
 src/algorithms/MultiLayer/blob.h                     | 5 +++++
 20 files changed, 98 insertions(+)

diff --git a/src/algorithms/LBP_MRF/MEDefs.cpp b/src/algorithms/LBP_MRF/MEDefs.cpp
index 726221f..817d7d1 100644
--- a/src/algorithms/LBP_MRF/MEDefs.cpp
+++ b/src/algorithms/LBP_MRF/MEDefs.cpp
@@ -2,6 +2,8 @@
 
 #include "MEDefs.hpp"
 
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 //using namespace bgslibrary::algorithms::lbp_mrf;
 
 namespace bgslibrary
@@ -27,3 +29,5 @@ namespace bgslibrary
     }
   }
 }
+
+#endif
diff --git a/src/algorithms/LBP_MRF/MEDefs.hpp b/src/algorithms/LBP_MRF/MEDefs.hpp
index 5092f87..386dc96 100644
--- a/src/algorithms/LBP_MRF/MEDefs.hpp
+++ b/src/algorithms/LBP_MRF/MEDefs.hpp
@@ -1,5 +1,8 @@
 #pragma once
 
+#include "opencv2/core/version.hpp"
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 namespace bgslibrary
 {
   namespace algorithms
@@ -58,3 +61,5 @@ namespace bgslibrary
     }
   }
 }
+
+#endif
diff --git a/src/algorithms/LBP_MRF/MEHistogram.cpp b/src/algorithms/LBP_MRF/MEHistogram.cpp
index 8e5cde3..78875dd 100644
--- a/src/algorithms/LBP_MRF/MEHistogram.cpp
+++ b/src/algorithms/LBP_MRF/MEHistogram.cpp
@@ -8,6 +8,8 @@
 #include "MEDefs.hpp"
 #include "MEImage.hpp"
 
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 using namespace bgslibrary::algorithms::lbp_mrf;
 
 MEHistogram::MEHistogram() {
@@ -459,3 +461,5 @@ void MEHistogramTransform::SetStretchProcessingMode(ProcessingType new_channel_m
     break;
   }
 }
+
+#endif
diff --git a/src/algorithms/LBP_MRF/MEHistogram.hpp b/src/algorithms/LBP_MRF/MEHistogram.hpp
index 9ae3a02..fe0868c 100644
--- a/src/algorithms/LBP_MRF/MEHistogram.hpp
+++ b/src/algorithms/LBP_MRF/MEHistogram.hpp
@@ -1,5 +1,8 @@
 #pragma once
 
+#include "opencv2/core/version.hpp"
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 namespace bgslibrary
 {
   namespace algorithms
@@ -324,3 +327,5 @@ namespace bgslibrary
     }
   }
 }
+
+#endif
diff --git a/src/algorithms/LBP_MRF/MEImage.cpp b/src/algorithms/LBP_MRF/MEImage.cpp
index 0928871..7899b52 100644
--- a/src/algorithms/LBP_MRF/MEImage.cpp
+++ b/src/algorithms/LBP_MRF/MEImage.cpp
@@ -6,6 +6,8 @@
 #include "MEImage.hpp"
 #include "MEDefs.hpp"
 
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 //using namespace bgslibrary::algorithms::lbp_mrf;
 
 #define ME_CAST_TO_IPLIMAGE(image_ptr) ((IplImage*)image_ptr)
@@ -1401,3 +1403,5 @@ namespace bgslibrary
     }
   }
 }
+
+#endif
diff --git a/src/algorithms/LBP_MRF/MEImage.hpp b/src/algorithms/LBP_MRF/MEImage.hpp
index b9ba1fc..9bc9e72 100644
--- a/src/algorithms/LBP_MRF/MEImage.hpp
+++ b/src/algorithms/LBP_MRF/MEImage.hpp
@@ -1,5 +1,8 @@
 #pragma once
 
+#include "opencv2/core/version.hpp"
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 namespace bgslibrary
 {
   namespace algorithms
@@ -975,3 +978,5 @@ namespace bgslibrary
     }
   }
 }
+
+#endif
diff --git a/src/algorithms/MultiLayer/BGS.h b/src/algorithms/MultiLayer/BGS.h
index 97eeaf4..d2754cf 100644
--- a/src/algorithms/MultiLayer/BGS.h
+++ b/src/algorithms/MultiLayer/BGS.h
@@ -1,5 +1,8 @@
 #pragma once
 
+#include "opencv2/core/version.hpp"
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 // opencv legacy includes
 #include "OpenCvLegacyIncludes.h"
 
@@ -168,3 +171,5 @@ namespace bgslibrary
     }
   }
 }
+
+#endif
diff --git a/src/algorithms/MultiLayer/BackgroundSubtractionAPI.h b/src/algorithms/MultiLayer/BackgroundSubtractionAPI.h
index b44cdd7..13f0208 100644
--- a/src/algorithms/MultiLayer/BackgroundSubtractionAPI.h
+++ b/src/algorithms/MultiLayer/BackgroundSubtractionAPI.h
@@ -1,5 +1,8 @@
 #pragma once
 
+#include "opencv2/core/version.hpp"
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 // opencv legacy includes
 #include "OpenCvLegacyIncludes.h"
 
@@ -99,3 +102,5 @@ namespace bgslibrary
     }
   }
 }
+
+#endif
diff --git a/src/algorithms/MultiLayer/BlobExtraction.cpp b/src/algorithms/MultiLayer/BlobExtraction.cpp
index ad6b053..6f67a34 100644
--- a/src/algorithms/MultiLayer/BlobExtraction.cpp
+++ b/src/algorithms/MultiLayer/BlobExtraction.cpp
@@ -1,3 +1,6 @@
+#include "opencv2/core/version.hpp"
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 #include "BlobResult.h"
 #include "BlobExtraction.h"
 #include "OpenCvLegacyIncludes.h"
@@ -1447,3 +1450,5 @@ namespace bgslibrary
     }
   }
 }
+
+#endif
diff --git a/src/algorithms/MultiLayer/BlobExtraction.h b/src/algorithms/MultiLayer/BlobExtraction.h
index dcd0dfe..71e1f40 100644
--- a/src/algorithms/MultiLayer/BlobExtraction.h
+++ b/src/algorithms/MultiLayer/BlobExtraction.h
@@ -1,5 +1,8 @@
 #pragma once
 
+#include "opencv2/core/version.hpp"
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 namespace bgslibrary
 {
   namespace algorithms
@@ -24,3 +27,5 @@ namespace bgslibrary
     }
   }
 }
+
+#endif
diff --git a/src/algorithms/MultiLayer/BlobResult.cpp b/src/algorithms/MultiLayer/BlobResult.cpp
index 10aafbf..b1a1bf6 100644
--- a/src/algorithms/MultiLayer/BlobResult.cpp
+++ b/src/algorithms/MultiLayer/BlobResult.cpp
@@ -3,6 +3,9 @@
 #include <functional>
 #include <algorithm>
 
+#include "opencv2/core/version.hpp"
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 #include "BlobResult.h"
 #include "BlobExtraction.h"
 
@@ -798,3 +801,5 @@ namespace bgslibrary
     }
   }
 }
+
+#endif
diff --git a/src/algorithms/MultiLayer/BlobResult.h b/src/algorithms/MultiLayer/BlobResult.h
index 96d9264..2213231 100644
--- a/src/algorithms/MultiLayer/BlobResult.h
+++ b/src/algorithms/MultiLayer/BlobResult.h
@@ -4,6 +4,9 @@
 #include <vector>
 #include <functional>
 
+#include "opencv2/core/version.hpp"
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 #include "BlobLibraryConfiguration.h"
 // opencv legacy includes
 #include "OpenCvLegacyIncludes.h"
@@ -143,3 +146,5 @@ namespace bgslibrary
     }
   }
 }
+
+#endif
diff --git a/src/algorithms/MultiLayer/CMultiLayerBGS.cpp b/src/algorithms/MultiLayer/CMultiLayerBGS.cpp
index 48e2b42..481f416 100644
--- a/src/algorithms/MultiLayer/CMultiLayerBGS.cpp
+++ b/src/algorithms/MultiLayer/CMultiLayerBGS.cpp
@@ -6,6 +6,9 @@
 #include <cmath>
 #include <iostream>
 
+#include "opencv2/core/version.hpp"
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 #include "CMultiLayerBGS.h"
 #include "OpenCvLegacyIncludes.h"
 
@@ -2099,3 +2102,5 @@ int CMultiLayerBGS::SetForegroundProbImage(IplImage* fg_prob_img) {
 void CMultiLayerBGS::SetCurrentFrameNumber(unsigned long cur_frame_no) {
   m_nCurImgFrameIdx = cur_frame_no;
 }
+
+#endif
diff --git a/src/algorithms/MultiLayer/CMultiLayerBGS.h b/src/algorithms/MultiLayer/CMultiLayerBGS.h
index 302a19a..5ff976c 100644
--- a/src/algorithms/MultiLayer/CMultiLayerBGS.h
+++ b/src/algorithms/MultiLayer/CMultiLayerBGS.h
@@ -20,6 +20,9 @@ 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
+
 #include "LocalBinaryPattern.h"
 #include "BlobResult.h"
 #include "OpenCvDataConversion.h"
@@ -269,3 +272,5 @@ namespace bgslibrary
     }
   }
 }
+
+#endif
diff --git a/src/algorithms/MultiLayer/LocalBinaryPattern.cpp b/src/algorithms/MultiLayer/LocalBinaryPattern.cpp
index 7ff5f17..89e5338 100644
--- a/src/algorithms/MultiLayer/LocalBinaryPattern.cpp
+++ b/src/algorithms/MultiLayer/LocalBinaryPattern.cpp
@@ -1,5 +1,8 @@
 #include "LocalBinaryPattern.h"
 
+#include "opencv2/core/version.hpp"
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 using namespace bgslibrary::algorithms::multilayer;
 
 CLocalBinaryPattern::CLocalBinaryPattern() {
@@ -251,3 +254,4 @@ void CLocalBinaryPattern::CalImageDifferenceMap(IplImage *cent_img, IplImage *ne
 
 }
 
+#endif
diff --git a/src/algorithms/MultiLayer/LocalBinaryPattern.h b/src/algorithms/MultiLayer/LocalBinaryPattern.h
index 30e17e9..69a119e 100644
--- a/src/algorithms/MultiLayer/LocalBinaryPattern.h
+++ b/src/algorithms/MultiLayer/LocalBinaryPattern.h
@@ -2,6 +2,9 @@
 
 #include <cstdio>
 
+#include "opencv2/core/version.hpp"
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 #include "BGS.h"
 #include "OpenCvDataConversion.h"
 
@@ -57,3 +60,5 @@ namespace bgslibrary
     }
   }
 }
+
+#endif
diff --git a/src/algorithms/MultiLayer/OpenCvDataConversion.h b/src/algorithms/MultiLayer/OpenCvDataConversion.h
index 4da11a5..9e78c6a 100644
--- a/src/algorithms/MultiLayer/OpenCvDataConversion.h
+++ b/src/algorithms/MultiLayer/OpenCvDataConversion.h
@@ -1,6 +1,10 @@
 #pragma once
 
 #include <stdio.h>
+
+#include "opencv2/core/version.hpp"
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 // opencv legacy includes
 #include "OpenCvLegacyIncludes.h"
 
@@ -182,3 +186,5 @@ namespace bgslibrary
     }
   }
 }
+
+#endif
diff --git a/src/algorithms/MultiLayer/OpenCvLegacyIncludes.h b/src/algorithms/MultiLayer/OpenCvLegacyIncludes.h
index f930b75..a539092 100644
--- a/src/algorithms/MultiLayer/OpenCvLegacyIncludes.h
+++ b/src/algorithms/MultiLayer/OpenCvLegacyIncludes.h
@@ -1,5 +1,11 @@
 #pragma once
+
+#include "opencv2/core/version.hpp"
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 // opencv legacy includes
 #include "opencv2/core/core_c.h"
 #include "opencv2/core/types_c.h"
 #include "opencv2/imgproc/imgproc_c.h"
+
+#endif
diff --git a/src/algorithms/MultiLayer/blob.cpp b/src/algorithms/MultiLayer/blob.cpp
index e44f98d..64b4f64 100644
--- a/src/algorithms/MultiLayer/blob.cpp
+++ b/src/algorithms/MultiLayer/blob.cpp
@@ -1,6 +1,9 @@
 #include <limits.h>
 #include "blob.h"
 
+#include "opencv2/core/version.hpp"
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 namespace bgslibrary
 {
   namespace algorithms
@@ -1092,3 +1095,5 @@ namespace bgslibrary
     }
   }
 }
+
+#endif
diff --git a/src/algorithms/MultiLayer/blob.h b/src/algorithms/MultiLayer/blob.h
index 6cce6c8..b80c573 100644
--- a/src/algorithms/MultiLayer/blob.h
+++ b/src/algorithms/MultiLayer/blob.h
@@ -4,6 +4,9 @@
 #include <vector>
 #include <algorithm>
 
+#include "opencv2/core/version.hpp"
+#if CV_MAJOR_VERSION >= 2 && CV_MAJOR_VERSION <= 3
+
 #include "BlobLibraryConfiguration.h"
 // opencv legacy includes
 #include "OpenCvLegacyIncludes.h"
@@ -790,3 +793,5 @@ namespace bgslibrary
     }
   }
 }
+
+#endif
-- 
GitLab