diff --git a/CMakeLists.txt b/CMakeLists.txt index 209c02b643402d8bf187d67c1e9290bff275e733..49449bafde75d8d608a67972f29aa75d48d24b3f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,8 +25,9 @@ endfunction() #endif() if(UNIX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++2a") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x") - set(CMAKE_MACOSX_RPATH 1) + #set(CMAKE_MACOSX_RPATH 1) endif(UNIX) # Avoid cmake warnings about changes in behavior of some Mac OS X path diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index d668f260fc04479100b0fb447cad7c730397af16..335c9d86c071d258cd840cff496c394edb8e29f4 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,3 +1,4 @@ +#examples cmake_minimum_required(VERSION 2.8) project(bgslibrary) @@ -11,7 +12,9 @@ endif() message(STATUS "BGSLIBRARY WITH PYTHON SUPPORT: ${BGS_PYTHON_SUPPORT}") if(UNIX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++14") + #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++2a") #seems to be TOOO modern?? + #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x") endif(UNIX) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") @@ -41,12 +44,13 @@ endforeach(OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES) if(UNIX) # add some standard warnings - ADD_DEFINITIONS(-Wno-variadic-macros -Wno-long-long -Wall -Wextra -Winit-self -Woverloaded-virtual -Wsign-promo -Wno-unused-parameter -pedantic -Woverloaded-virtual -Wno-unknown-pragmas) + #-Woverloaded-virtual #removed temporarily to increase readability of compiler output + ADD_DEFINITIONS(-Wno-variadic-macros -Wno-long-long -Wall -Wextra -Winit-self -Wsign-promo -Wno-unused-parameter -pedantic -Woverloaded-virtual -Wno-unknown-pragmas) # -ansi does not compile with sjn module #ADD_DEFINITIONS(-ansi) - # if you like to have warinings about conversions, e.g. double->int or double->float etc., or float compare + # if you like to have warnings about conversions, e.g. double->int or double->float etc., or float compare #ADD_DEFINITIONS(-Wconversion -Wfloat-equal) endif(UNIX) @@ -58,14 +62,15 @@ message(STATUS " version: ${OpenCV_VERSION}") message(STATUS " libraries: ${OpenCV_LIBS}") message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}") -# if(${OpenCV_VERSION} VERSION_EQUAL 3 OR ${OpenCV_VERSION} VERSION_GREATER 3) -# message(FATAL_ERROR "OpenCV version is not compatible: ${OpenCV_VERSION}") -# endif() +if(${OpenCV_VERSION} VERSION_EQUAL 3 OR ${OpenCV_VERSION} VERSION_GREATER 3) + message(STATUS "WOW! Found OpenCV Version ${OpenCV_VERSION}. SO PROGRESSIVE ;) <-- might not be compatible yet\n") +endif() if(${OpenCV_VERSION} VERSION_LESS 2.3.1) message(FATAL_ERROR "OpenCV version is not compatible: ${OpenCV_VERSION}") endif() +# requires: apt install libarchive-dev find_package(LibArchive REQUIRED) message(STATUS "LibArchive library status:") message(STATUS " version: ${LibArchive_VERSION}") @@ -112,6 +117,7 @@ endif() # GMG is not available in older OpenCV versions if(${OpenCV_VERSION} VERSION_LESS 2.4.3) + message(WARNING "WTF???????") file(GLOB gmg package_bgs/GMG.cpp) list(REMOVE_ITEM bgs_src ${gmg}) endif() @@ -122,8 +128,9 @@ if(BGS_PYTHON_SUPPORT) target_link_libraries(libbgs ${OpenCV_LIBS} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES}) target_compile_definitions(libbgs PRIVATE BGS_PYTHON_SUPPORT=1) else() + message(STATUS "HAHA ${bgs_src}\n\n") #add_library(libbgs STATIC ${sources} ${bgs_src} ${analysis_src}) - add_library(libbgs STATIC ${bgs_src} ${analysis_src}) + add_library(libbgs STATIC ${bgs_src} ${analysis_src}) # <<<<<< TODO target_link_libraries(libbgs ${OpenCV_LIBS}) endif() set_property(TARGET libbgs PROPERTY PUBLIC_HEADER ${bgs_include}) @@ -133,7 +140,7 @@ else() set_property(TARGET libbgs PROPERTY OUTPUT_NAME "bgs") endif() -add_executable(bgslibrary ${main}) +add_executable(bgslibrary ${main}) # <<<<<< TODO target_link_libraries(bgslibrary ${OpenCV_LIBS} libbgs) # set_target_properties(bgslibrary PROPERTIES OUTPUT_NAME bgs) diff --git a/src/algorithms/Tapter.cpp b/src/algorithms/Tapter.cpp index 6d2425af5f13eeb785a889d05e045276f77b64e8..b0ce1936e94b76f1e85bd6aafb279038ecf41e0c 100644 --- a/src/algorithms/Tapter.cpp +++ b/src/algorithms/Tapter.cpp @@ -72,7 +72,7 @@ void Tapter::process(const cv::Mat &img_input, cv::Mat &img_output, cv::Mat &img IplImage *frame = new IplImage(img_input); - if (firstTime) + if (firstTime) // XXX where is this ever set? { int w = cvGetSize(frame).width; int h = cvGetSize(frame).height; @@ -85,7 +85,7 @@ void Tapter::process(const cv::Mat &img_input, cv::Mat &img_output, cv::Mat &img m_pBGModel->setBGModelParameter(1, trainingSensitivity); m_pBGModel->setBGModelParameter(2, learningRate); m_pBGModel->setBGModelParameter(3, trainingLearningRate); - m_pBGModel->setBGModelParameter(5, trainingSteps); + m_pBGModel->setBGModelParameter(5, trainingSteps); //xxx Y 5? what happened to 4? m_pBGModel->UpdateModel(frame); @@ -108,30 +108,30 @@ void Tapter::process(const cv::Mat &img_input, cv::Mat &img_output, cv::Mat &img firstTime = false; } -void Tapter::saveConfig() +void Tapter::save_config(cv::FileStorage &fs) { - CvFileStorage* fs = cvOpenFileStorage(config_xml.c_str(), nullptr, CV_STORAGE_WRITE); - - cvWriteInt(fs, "sensitivity", sensitivity); - cvWriteInt(fs, "trainingSensitivity", trainingSensitivity); - cvWriteInt(fs, "learningRate", learningRate); - cvWriteInt(fs, "trainingLearningRate", trainingLearningRate); - cvWriteInt(fs, "trainingSteps", trainingSteps); - cvWriteInt(fs, "showOutput", showOutput); - - cvReleaseFileStorage(&fs); + //TODO + // CvFileStorage* fs = cvOpenFileStorage(config_xml.c_str(), nullptr, CV_STORAGE_WRITE); + fs << "sensitivity" << sensitivity; + fs << "trainingSensitivity" << trainingSensitivity; + fs << "learningRate" << learningRate; + fs << "trainingLearningRate"<< trainingLearningRate; + fs << "trainingSteps" << trainingSteps; + fs << "showOutput" << showOutput; } -void Tapter::loadConfig() +void Tapter::load_config(cv::FileStorage &fs) { - CvFileStorage* fs = cvOpenFileStorage(config_xml.c_str(), nullptr, CV_STORAGE_READ); - - sensitivity = cvReadIntByName(fs, nullptr, "sensitivity", 75); - trainingSensitivity = cvReadIntByName(fs, nullptr, "trainingSensitivity", 245); - learningRate = cvReadIntByName(fs, nullptr, "learningRate", 62); - trainingLearningRate = cvReadIntByName(fs, nullptr, "trainingLearningRate", 255); - trainingSteps = cvReadIntByName(fs, nullptr, "trainingSteps", 55); - showOutput = cvReadIntByName(fs, 0, "showOutput", true); + //TODO + //test defaults... + // CvFileStorage* fs = cvOpenFileStorage(config_xml.c_str(), nullptr, CV_STORAGE_READ); + + fs["sensitivity"] >> sensitivity; //def: 75 + fs["trainingSensitivity"] >> trainingSensitivity; //def: 245 + fs["learningRate"] >> learningRate; //def: 62 + fs["trainingLearningRate"] >> trainingLearningRate;//def: 255 + fs["trainingSteps"] >> trainingSteps; //def: 55 + fs["showOutput"] >> showOutput; //def: true cvReleaseFileStorage(&fs); } diff --git a/src/algorithms/Tapter.h b/src/algorithms/Tapter.h index ae4ef5eca2114f95390f6a17c7900d7049a3cece..3e3bfaab9cc92cbbd9cc29b222dd9677f22cb9c5 100644 --- a/src/algorithms/Tapter.h +++ b/src/algorithms/Tapter.h @@ -30,8 +30,8 @@ along with BGSLibrary. If not, see <http://www.gnu.org/licenses/>. //#define MC_SHOW_STEP_ANALYSE -using namespace lb_library; -using namespace lb_library::AdaptiveSOM; +using namespace bgslibrary::algorithms::lb; +// using namespace bgslibrary::algorithms::lb::AdaptiveSOM; using namespace cv; using namespace std; @@ -63,7 +63,7 @@ namespace bgslibrary void setInitialFrameCounter(int counter); // void setPaths(std::string inPath,std::string outPath); - void setPathOut(std::string outPath); + // void setPathOut(std::string outPath); // //! 1 is on // //! other no write @@ -79,10 +79,10 @@ namespace bgslibrary void process(const cv::Mat &img_input, cv::Mat &img_output, cv::Mat &img_bgmodel); private: - void saveConfig(); - void loadConfig(); - - + void save_config(cv::FileStorage &fs); + void load_config(cv::FileStorage &fs); }; + + bgs_register(Tapter); } } diff --git a/src/utils/ILoadSaveConfig.h b/src/utils/ILoadSaveConfig.h index 2d2261a1c263f3e452700789f4ca5bc55e2ab8e4..33c896b0d80c7594976cfdfcd5997c4b0284e902 100644 --- a/src/utils/ILoadSaveConfig.h +++ b/src/utils/ILoadSaveConfig.h @@ -1,4 +1,4 @@ -#pragma once + #pragma once #include <iostream> #include <fstream>