diff --git a/Demo.cpp b/Demo.cpp index f1022a50c5b140a0a94bfa3e07cc4cf8ff0c0186..b23bbb1248d4645ded1e1b4f9ef4d4fb4ee8d2e4 100644 --- a/Demo.cpp +++ b/Demo.cpp @@ -16,8 +16,11 @@ along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. */ #include <iostream> #include <opencv2/opencv.hpp> +using namespace cv; -#include "package_bgs/bgslibrary.h" +//#include "package_bgs/bgslibrary.h" +#include "package_bgs/IBGS.h" +using namespace ibgs; int main(int argc, char **argv) { @@ -42,7 +45,8 @@ int main(int argc, char **argv) /* Background Subtraction Methods */ IBGS *bgs; - bgs = new FrameDifference; + //bgs = new FrameDifference; + bgs=IBGS::create(std::string("FrameDifference")); //bgs = new StaticFrameDifference; //bgs = new WeightedMovingMean; //bgs = new WeightedMovingVariance; diff --git a/PreProcessor.h b/PreProcessor.h index 2e6e61c75ddd3d8e21362a83e800fe7ab846db48..176dbca102e053261faefabe0c7a39319c906893 100644 --- a/PreProcessor.h +++ b/PreProcessor.h @@ -18,6 +18,13 @@ along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. #include <iostream> #include <opencv2/opencv.hpp> +#include <opencv2/core/core.hpp> +#include <opencv2/highgui/highgui.hpp> +#include <opencv2/imgproc/imgproc.hpp> +#include <opencv2/features2d/features2d.hpp> +#include <opencv2/imgproc/types_c.h> +#include <opencv2/imgproc/imgproc_c.h> +#include <opencv2/highgui/highgui_c.h> namespace bgslibrary { diff --git a/VideoAnalysis.cpp b/VideoAnalysis.cpp index 9c8020a8c2aef4a16c0bdc36c491d7d7030ba09a..03e47b3bef3af8f0628d205231ffef1ffd6f8554 100644 --- a/VideoAnalysis.cpp +++ b/VideoAnalysis.cpp @@ -45,7 +45,7 @@ namespace bgslibrary "{st|stopAt|0|Frame number to stop}" "{im|imgref||Specify image file}" ; -#elif CV_MAJOR_VERSION == 3 +#elif CV_MAJOR_VERSION >= 3 const std::string keys = "{h help ? | | Print this message }" "{uf use_file |false| Use a video file }" @@ -68,7 +68,7 @@ namespace bgslibrary cmd.printParams(); return false; } -#elif CV_MAJOR_VERSION == 3 +#elif CV_MAJOR_VERSION >= 3 if (argc <= 1 || cmd.has("help")) { std::cout << "Usage: " << argv[0] << " [options]" << std::endl; diff --git a/package_analysis/ForegroundMaskAnalysis.h b/package_analysis/ForegroundMaskAnalysis.h index a0797d76b8fc4a6fe915fa9457f57ab1e97f880c..0a64ab29242058d464304492c3f7dc1dcd1c1357 100644 --- a/package_analysis/ForegroundMaskAnalysis.h +++ b/package_analysis/ForegroundMaskAnalysis.h @@ -19,7 +19,13 @@ along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. #include <iostream> #include <string> #include <opencv2/opencv.hpp> - +#include <opencv2/core/core.hpp> +#include <opencv2/highgui/highgui.hpp> +#include <opencv2/imgproc/imgproc.hpp> +#include <opencv2/features2d/features2d.hpp> +#include <opencv2/imgproc/types_c.h> +#include <opencv2/imgproc/imgproc_c.h> +#include <opencv2/highgui/highgui_c.h> namespace bgslibrary { diff --git a/package_analysis/PixelUtils.h b/package_analysis/PixelUtils.h index 0e35c4055421c76d5bdb0af91fee4c6008b98253..0ae6f73c5091f3553c346339aba4a0f18004fc2c 100644 --- a/package_analysis/PixelUtils.h +++ b/package_analysis/PixelUtils.h @@ -18,6 +18,9 @@ along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. #include <stdio.h> #include <opencv2/opencv.hpp> +#include <opencv2/imgproc/types_c.h> +#include <opencv2/imgproc/imgproc_c.h> +#include <opencv2/highgui/highgui_c.h> class PixelUtils { diff --git a/package_bgs/IBGS.h b/package_bgs/IBGS.h index 718bf51ed20d35865d420c46aaa867cd446dcb2d..bfedeffeecb1d013c57feb3c10518ac409bdf130 100644 --- a/package_bgs/IBGS.h +++ b/package_bgs/IBGS.h @@ -18,7 +18,16 @@ along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. #include <iostream> #include <fstream> +#include <list> #include <opencv2/opencv.hpp> +#include <cv.h> +#include <opencv2/imgproc/types_c.h> +#include <opencv2/imgproc/imgproc_c.h> +#include <opencv2/highgui/highgui_c.h> + +#define CV_RGB(r, g, b) cv::Scalar((b), (g), (r), 0) + + namespace bgslibrary { @@ -35,7 +44,7 @@ namespace bgslibrary cv::Mat _img_foreground; cv::Mat _img_background; process(img_input, _img_foreground, _img_background); - _img_background.copyTo(img_background); + _img_background.copyTo(img_background); return _img_foreground; } cv::Mat getBackgroundModel() { @@ -43,7 +52,9 @@ namespace bgslibrary } virtual void process(const cv::Mat &img_input, cv::Mat &img_foreground, cv::Mat &img_background) = 0; virtual ~IBGS() {} - + // create by name + static IBGS* create(const std::string alg_name); + static std::list<std::string> get_algs_name(); protected: bool firstTime = true; bool showOutput = true; @@ -65,10 +76,14 @@ namespace bgslibrary img_outfg = cv::Mat::zeros(img_input.size(), CV_8UC1); img_outbg = cv::Mat::zeros(img_input.size(), CV_8UC3); } - + private: virtual void saveConfig() = 0; virtual void loadConfig() = 0; }; } } + +namespace ibgs = bgslibrary::algorithms; + + diff --git a/package_bgs/IMBS/IMBS.hpp b/package_bgs/IMBS/IMBS.hpp index 7b9683b70011666d7a2a40d0d144c0f82ac6c8b6..e7043a0c9628bcdd8fd5adf986dbc3a78b028a85 100644 --- a/package_bgs/IMBS/IMBS.hpp +++ b/package_bgs/IMBS/IMBS.hpp @@ -41,6 +41,9 @@ along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/features2d/features2d.hpp> +#include <opencv2/imgproc/types_c.h> +#include <opencv2/imgproc/imgproc_c.h> +#include <opencv2/highgui/highgui_c.h> //C++ #include <iostream> #include <vector> diff --git a/package_bgs/KNN.cpp b/package_bgs/KNN.cpp index d2e14127ee2efcde134226b10871716994bc1f5e..e0877b5ba6f07df633eb61332d20eadde87c5846 100644 --- a/package_bgs/KNN.cpp +++ b/package_bgs/KNN.cpp @@ -16,7 +16,7 @@ */ #include "KNN.h" -#if CV_MAJOR_VERSION == 3 +#if CV_MAJOR_VERSION >= 3 using namespace bgslibrary::algorithms; diff --git a/package_bgs/KNN.h b/package_bgs/KNN.h index 87f20b249444b5ad2da2864e6b30eb0b9b36e78b..9e79d934224591afd85278dd7806fbd2f35d361c 100644 --- a/package_bgs/KNN.h +++ b/package_bgs/KNN.h @@ -17,7 +17,7 @@ along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. #pragma once #include "opencv2/core/version.hpp" -#if CV_MAJOR_VERSION == 3 +#if CV_MAJOR_VERSION >= 3 #include <iostream> #include <opencv2/opencv.hpp> diff --git a/package_bgs/LBP_MRF/MEHistogram.cpp b/package_bgs/LBP_MRF/MEHistogram.cpp index 17c77fdb9079f40391229f37401e64dd5b0e2b1e..5b4e56fba7e9d1285237e19842d5a2be0e21c58b 100644 --- a/package_bgs/LBP_MRF/MEHistogram.cpp +++ b/package_bgs/LBP_MRF/MEHistogram.cpp @@ -44,7 +44,9 @@ along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. #include "MEHistogram.hpp" #include <opencv2/opencv.hpp> - +#include <opencv2/core/core_c.h> +#include <opencv2/imgproc/types_c.h> +#include <opencv2/imgproc/imgproc_c.h> #include "MEDefs.hpp" #include "MEImage.hpp" diff --git a/package_bgs/LBP_MRF/MEImage.cpp b/package_bgs/LBP_MRF/MEImage.cpp index b01d494e1091985dc04d312aa99712d440fea80e..a917bc8c89d688ee0aa8ebf26e7ac5e4ab4454ce 100644 --- a/package_bgs/LBP_MRF/MEImage.cpp +++ b/package_bgs/LBP_MRF/MEImage.cpp @@ -38,6 +38,8 @@ along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. #include "MEImage.hpp" #include <opencv2/opencv.hpp> +#include <opencv2/imgproc/types_c.h> +#include <opencv2/imgproc/imgproc_c.h> #include "MEDefs.hpp" diff --git a/package_bgs/LBP_MRF/MotionDetection.cpp b/package_bgs/LBP_MRF/MotionDetection.cpp index e591faa92cacdf776db0198f309f76a89f955aa9..bb61cf797056e63ca02b738c0e9539b35d4b954a 100644 --- a/package_bgs/LBP_MRF/MotionDetection.cpp +++ b/package_bgs/LBP_MRF/MotionDetection.cpp @@ -48,6 +48,8 @@ using namespace ck; #include <opencv/cvaux.h> #endif +#include <opencv2/imgproc.hpp> + #include "MEHistogram.hpp" #include "MEImage.hpp" diff --git a/package_bgs/LOBSTER.h b/package_bgs/LOBSTER.h index 41ba8828664215cf1b9201a1c9f64b748e43ff34..4b96ec97ba59df72ada70abb2879ff6a3b8336fb 100644 --- a/package_bgs/LOBSTER.h +++ b/package_bgs/LOBSTER.h @@ -40,7 +40,6 @@ namespace bgslibrary ~LOBSTER(); void process(const cv::Mat &img_input, cv::Mat &img_output, cv::Mat &img_bgmodel); - private: void saveConfig(); void loadConfig(); diff --git a/package_bgs/MultiLayer/CMultiLayerBGS.h b/package_bgs/MultiLayer/CMultiLayerBGS.h index 78a0527ddb75bcce0f324ec0ecd52d017bc0c529..d9c2fb732822061cd995e6b741000602041699db 100644 --- a/package_bgs/MultiLayer/CMultiLayerBGS.h +++ b/package_bgs/MultiLayer/CMultiLayerBGS.h @@ -51,7 +51,7 @@ we don't use the bilateral filter to remove the noise in the foreground detectio step. If you compile it under Linux, please uncomment it. */ //#define LINUX_BILATERAL_FILTER - +#include <opencv2/imgproc.hpp> #include "LocalBinaryPattern.h" #include "BGS.h" #include <stdio.h> diff --git a/package_bgs/VuMeter/TBackground.cpp b/package_bgs/VuMeter/TBackground.cpp index 4e93729fa376894c1406a94314e74e5b8a15cec1..76d18c75021cd6710c79b69383dd29ca5ff321d9 100644 --- a/package_bgs/VuMeter/TBackground.cpp +++ b/package_bgs/VuMeter/TBackground.cpp @@ -24,6 +24,7 @@ along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. #include "TBackground.h" + TBackground::TBackground(void) { std::cout << "TBackground()" << std::endl; diff --git a/package_bgs/VuMeter/TBackground.h b/package_bgs/VuMeter/TBackground.h index dbaaa6c3e672f7b3360bd7229a047e4e9351bab1..61925a2358490ba96824fa7675012d9c2985e408 100644 --- a/package_bgs/VuMeter/TBackground.h +++ b/package_bgs/VuMeter/TBackground.h @@ -25,6 +25,8 @@ along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. #include <iostream> #include <opencv2/opencv.hpp> +#include <opencv2/core/core_c.h> +#include <opencv2/imgproc/imgproc_c.h> class TBackground { diff --git a/package_bgs/dp/Image.h b/package_bgs/dp/Image.h index 6c0b5b3257486489597f8c9dae47dc6cec304d8b..fac11c8cf310fc58fd35c1439797bf023025a0d6 100644 --- a/package_bgs/dp/Image.h +++ b/package_bgs/dp/Image.h @@ -29,8 +29,7 @@ along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. #pragma once #include <opencv2/opencv.hpp> -//#include <cxcore.h> - +#include <cv.h> // --- Image Iterator --------------------------------------------------------- template <class T> diff --git a/package_bgs/lb/Types.h b/package_bgs/lb/Types.h index bd59c41eaba01dc5f8642a7bf40c365f5c61758f..fd9e65bc3a62750aca2d5efe56afe31aaba639b3 100644 --- a/package_bgs/lb/Types.h +++ b/package_bgs/lb/Types.h @@ -36,6 +36,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #pragma once #include <opencv2/opencv.hpp> +#include <opencv2/core/core_c.h> namespace lb_library {