From f8807f18cde8e76696eb0d7ba4de95a0824072a2 Mon Sep 17 00:00:00 2001 From: Maksim Shabunin Date: Mon, 13 Mar 2017 13:17:12 +0300 Subject: [PATCH] Reduced modules dependencies: - made some of dependencies explicit - removed dependencies to highgui and some other modules where possible - modified some samples to build without modules --- modules/bgsegm/CMakeLists.txt | 2 +- modules/ccalib/CMakeLists.txt | 2 +- modules/datasets/CMakeLists.txt | 2 +- modules/datasets/src/track_alov.cpp | 2 +- modules/datasets/src/track_vot.cpp | 2 +- modules/line_descriptor/CMakeLists.txt | 2 +- .../opencv2/line_descriptor/descriptor.hpp | 3 - modules/line_descriptor/perf/perf_precomp.hpp | 1 - .../samples/compute_descriptors.cpp | 15 +- .../line_descriptor/samples/knn_matching.cpp | 14 +- .../samples/lines_extraction.cpp | 17 +- .../samples/lsd_lines_extraction.cpp | 17 +- modules/line_descriptor/samples/matching.cpp | 16 +- .../samples/radius_matching.cpp | 15 +- modules/line_descriptor/src/precomp.hpp | 2 - modules/line_descriptor/test/test_precomp.hpp | 1 - modules/optflow/CMakeLists.txt | 2 +- modules/optflow/src/deepflow.cpp | 1 - modules/optflow/src/interfaces.cpp | 1 - modules/optflow/src/sparse_matching_gpc.cpp | 2 +- modules/phase_unwrapping/CMakeLists.txt | 2 +- .../phase_unwrapping/test/test_precomp.hpp | 1 - modules/plot/CMakeLists.txt | 2 +- modules/rgbd/CMakeLists.txt | 3 +- modules/saliency/CMakeLists.txt | 2 +- modules/saliency/src/BING/CmShow.cpp | 5 +- modules/saliency/src/BING/CmShow.hpp | 2 +- modules/stereo/CMakeLists.txt | 2 +- modules/stereo/src/precomp.hpp | 1 - modules/structured_light/CMakeLists.txt | 2 +- .../structured_light/sinusoidalpattern.hpp | 2 +- modules/structured_light/test/test_plane.cpp | 3 +- .../structured_light/test/test_precomp.hpp | 3 +- modules/tracking/CMakeLists.txt | 2 +- .../include/opencv2/tracking/tldDataset.hpp | 6 +- .../include/opencv2/tracking/tracker.hpp | 36 ---- modules/tracking/samples/multitracker.cpp | 1 + modules/tracking/samples/roiSelector.hpp | 197 ++++++++++++++++++ .../tutorial_customizing_cn_tracker.cpp | 1 + .../tutorial_introduction_to_tracker.cpp | 1 + .../samples/tutorial_multitracker.cpp | 1 + modules/tracking/src/gtrUtils.hpp | 1 - modules/tracking/src/roiSelector.cpp | 185 ---------------- modules/tracking/src/tldDataset.cpp | 6 +- modules/tracking/src/tldUtils.cpp | 28 --- modules/tracking/src/tldUtils.hpp | 5 +- .../tutorial_introduction_to_tracker.markdown | 1 - .../tutorials/tutorial_multitracker.markdown | 3 +- modules/xfeatures2d/CMakeLists.txt | 3 +- .../samples/bagofwords_classification.cpp | 15 +- .../samples/shape_transformation.cpp | 14 +- .../xfeatures2d/samples/video_homography.cpp | 15 +- modules/ximgproc/CMakeLists.txt | 2 +- modules/ximgproc/src/deriche_filter.cpp | 1 - modules/ximgproc/src/disparity_filters.cpp | 16 +- modules/ximgproc/src/paillou_filter.cpp | 1 - .../ximgproc/src/rolling_guidance_filter.cpp | 1 - .../src/selectivesearchsegmentation.cpp | 1 - modules/xobjdetect/CMakeLists.txt | 2 +- .../xobjdetect/include/opencv2/xobjdetect.hpp | 1 - modules/xobjdetect/src/precomp.hpp | 1 - modules/xobjdetect/src/wbdetector.hpp | 1 - .../waldboost_detector/waldboost_detector.cpp | 7 +- modules/xphoto/CMakeLists.txt | 2 +- modules/xphoto/test/test_precomp.hpp | 1 - 65 files changed, 366 insertions(+), 341 deletions(-) create mode 100644 modules/tracking/samples/roiSelector.hpp delete mode 100644 modules/tracking/src/roiSelector.cpp diff --git a/modules/bgsegm/CMakeLists.txt b/modules/bgsegm/CMakeLists.txt index 14152ba96..7759fe018 100644 --- a/modules/bgsegm/CMakeLists.txt +++ b/modules/bgsegm/CMakeLists.txt @@ -1,2 +1,2 @@ set(the_description "Background Segmentation Algorithms") -ocv_define_module(bgsegm opencv_core opencv_imgproc opencv_video opencv_highgui WRAP python) +ocv_define_module(bgsegm opencv_core opencv_imgproc opencv_video WRAP python) diff --git a/modules/ccalib/CMakeLists.txt b/modules/ccalib/CMakeLists.txt index 5700a1204..f803322ba 100644 --- a/modules/ccalib/CMakeLists.txt +++ b/modules/ccalib/CMakeLists.txt @@ -1,2 +1,2 @@ set(the_description "Custom Calibration Pattern") -ocv_define_module(ccalib opencv_core opencv_imgproc opencv_calib3d opencv_features2d WRAP python) +ocv_define_module(ccalib opencv_core opencv_imgproc opencv_calib3d opencv_features2d opencv_highgui WRAP python) diff --git a/modules/datasets/CMakeLists.txt b/modules/datasets/CMakeLists.txt index 217acc335..621e1600c 100644 --- a/modules/datasets/CMakeLists.txt +++ b/modules/datasets/CMakeLists.txt @@ -1,4 +1,4 @@ set(the_description "datasets framework") -ocv_define_module(datasets opencv_core opencv_ml opencv_flann opencv_text WRAP python) +ocv_define_module(datasets opencv_core opencv_imgcodecs opencv_ml opencv_flann opencv_text WRAP python) ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4267) # flann, Win64 diff --git a/modules/datasets/src/track_alov.cpp b/modules/datasets/src/track_alov.cpp index 0cdd52164..4fee54cb1 100644 --- a/modules/datasets/src/track_alov.cpp +++ b/modules/datasets/src/track_alov.cpp @@ -43,7 +43,7 @@ #include #include -#include +#include "opencv2/imgcodecs.hpp" using namespace std; diff --git a/modules/datasets/src/track_vot.cpp b/modules/datasets/src/track_vot.cpp index 64e32f2e9..1c5ba9e61 100644 --- a/modules/datasets/src/track_vot.cpp +++ b/modules/datasets/src/track_vot.cpp @@ -43,7 +43,7 @@ #include #include -#include +#include "opencv2/imgcodecs.hpp" using namespace std; diff --git a/modules/line_descriptor/CMakeLists.txt b/modules/line_descriptor/CMakeLists.txt index d0b0b4b46..0c18edf7d 100644 --- a/modules/line_descriptor/CMakeLists.txt +++ b/modules/line_descriptor/CMakeLists.txt @@ -1,2 +1,2 @@ set(the_description "Line descriptor") -ocv_define_module(line_descriptor opencv_features2d opencv_imgproc opencv_highgui WRAP python) +ocv_define_module(line_descriptor opencv_imgproc OPTIONAL opencv_features2d WRAP python) diff --git a/modules/line_descriptor/include/opencv2/line_descriptor/descriptor.hpp b/modules/line_descriptor/include/opencv2/line_descriptor/descriptor.hpp index 9f2c639bf..5de91bca4 100644 --- a/modules/line_descriptor/include/opencv2/line_descriptor/descriptor.hpp +++ b/modules/line_descriptor/include/opencv2/line_descriptor/descriptor.hpp @@ -56,10 +56,7 @@ #include #include "opencv2/core/utility.hpp" -//#include "opencv2/core/private.hpp" #include -#include -#include #include "opencv2/core.hpp" /* define data types */ diff --git a/modules/line_descriptor/perf/perf_precomp.hpp b/modules/line_descriptor/perf/perf_precomp.hpp index 1a3fd956f..445b70b58 100644 --- a/modules/line_descriptor/perf/perf_precomp.hpp +++ b/modules/line_descriptor/perf/perf_precomp.hpp @@ -53,7 +53,6 @@ #include "opencv2/ts.hpp" #include "opencv2/highgui.hpp" -#include "opencv2/features2d.hpp" #include "opencv2/line_descriptor.hpp" #ifdef GTEST_CREATE_SHARED_LIBRARY diff --git a/modules/line_descriptor/samples/compute_descriptors.cpp b/modules/line_descriptor/samples/compute_descriptors.cpp index d2bdef469..680043038 100644 --- a/modules/line_descriptor/samples/compute_descriptors.cpp +++ b/modules/line_descriptor/samples/compute_descriptors.cpp @@ -39,15 +39,16 @@ // //M*/ -#include +#include + +#ifdef HAVE_OPENCV_FEATURES2D +#include #include "opencv2/core/utility.hpp" #include #include #include -#include - using namespace cv; using namespace cv::line_descriptor; @@ -98,4 +99,12 @@ int main( int argc, char** argv ) } +#else + +int main() +{ + std::cerr << "OpenCV was built without features2d module" << std::endl; + return 0; +} +#endif // HAVE_OPENCV_FEATURES2D diff --git a/modules/line_descriptor/samples/knn_matching.cpp b/modules/line_descriptor/samples/knn_matching.cpp index a59b6caba..f2399224b 100644 --- a/modules/line_descriptor/samples/knn_matching.cpp +++ b/modules/line_descriptor/samples/knn_matching.cpp @@ -39,14 +39,16 @@ // //M*/ -#include +#include +#ifdef HAVE_OPENCV_FEATURES2D + +#include #include "opencv2/core/utility.hpp" #include #include #include -#include #include #include @@ -194,4 +196,12 @@ int main( int argc, char** argv ) } +#else + +int main() +{ + std::cerr << "OpenCV was built without features2d module" << std::endl; + return 0; +} +#endif // HAVE_OPENCV_FEATURES2D diff --git a/modules/line_descriptor/samples/lines_extraction.cpp b/modules/line_descriptor/samples/lines_extraction.cpp index 03b0124dc..d76327f9e 100644 --- a/modules/line_descriptor/samples/lines_extraction.cpp +++ b/modules/line_descriptor/samples/lines_extraction.cpp @@ -39,15 +39,16 @@ // //M*/ -#include +#include + +#ifdef HAVE_OPENCV_FEATURES2D +#include #include "opencv2/core/utility.hpp" #include #include #include -#include - using namespace cv; using namespace cv::line_descriptor; using namespace std; @@ -121,3 +122,13 @@ int main( int argc, char** argv ) imshow( "Lines", output ); waitKey(); } + +#else + +int main() +{ + std::cerr << "OpenCV was built without features2d module" << std::endl; + return 0; +} + +#endif // HAVE_OPENCV_FEATURES2D diff --git a/modules/line_descriptor/samples/lsd_lines_extraction.cpp b/modules/line_descriptor/samples/lsd_lines_extraction.cpp index 4c1923e01..6a0c26697 100644 --- a/modules/line_descriptor/samples/lsd_lines_extraction.cpp +++ b/modules/line_descriptor/samples/lsd_lines_extraction.cpp @@ -39,15 +39,16 @@ // //M*/ -#include +#include + +#ifdef HAVE_OPENCV_FEATURES2D +#include #include "opencv2/core/utility.hpp" #include #include #include -#include - using namespace cv; using namespace cv::line_descriptor; using namespace std; @@ -121,3 +122,13 @@ int main( int argc, char** argv ) imshow( "LSD lines", output ); waitKey(); } + +#else + +int main() +{ + std::cerr << "OpenCV was built without features2d module" << std::endl; + return 0; +} + +#endif // HAVE_OPENCV_FEATURES2D diff --git a/modules/line_descriptor/samples/matching.cpp b/modules/line_descriptor/samples/matching.cpp index 6eb669c38..7a571a82b 100644 --- a/modules/line_descriptor/samples/matching.cpp +++ b/modules/line_descriptor/samples/matching.cpp @@ -39,15 +39,16 @@ // //M*/ -#include +#include + +#ifdef HAVE_OPENCV_FEATURES2D +#include #include "opencv2/core/utility.hpp" #include #include #include -#include - #define MATCHES_DIST_THRESHOLD 25 using namespace cv; @@ -207,3 +208,12 @@ int main( int argc, char** argv ) } +#else + +int main() +{ + std::cerr << "OpenCV was built without features2d module" << std::endl; + return 0; +} + +#endif // HAVE_OPENCV_FEATURES2D diff --git a/modules/line_descriptor/samples/radius_matching.cpp b/modules/line_descriptor/samples/radius_matching.cpp index 7d43b8424..0ec8bcad3 100644 --- a/modules/line_descriptor/samples/radius_matching.cpp +++ b/modules/line_descriptor/samples/radius_matching.cpp @@ -39,6 +39,10 @@ // //M*/ +#include + +#ifdef HAVE_OPENCV_FEATURES2D + #include #include "opencv2/core/utility.hpp" @@ -46,7 +50,6 @@ #include #include -#include #include using namespace cv; @@ -140,3 +143,13 @@ int main( int argc, char** argv ) } } + +#else + +int main() +{ + std::cerr << "OpenCV was built without features2d module" << std::endl; + return 0; +} + +#endif // HAVE_OPENCV_FEATURES2D diff --git a/modules/line_descriptor/src/precomp.hpp b/modules/line_descriptor/src/precomp.hpp index 6fcffecbf..5dcf167bd 100644 --- a/modules/line_descriptor/src/precomp.hpp +++ b/modules/line_descriptor/src/precomp.hpp @@ -54,8 +54,6 @@ #include "opencv2/core/utility.hpp" #include "opencv2/core/private.hpp" #include -#include -#include #include "opencv2/core.hpp" #include diff --git a/modules/line_descriptor/test/test_precomp.hpp b/modules/line_descriptor/test/test_precomp.hpp index c066366c8..bd42ca826 100644 --- a/modules/line_descriptor/test/test_precomp.hpp +++ b/modules/line_descriptor/test/test_precomp.hpp @@ -11,7 +11,6 @@ #include "opencv2/ts.hpp" #include "opencv2/imgproc.hpp" -#include "opencv2/features2d.hpp" #include "opencv2/highgui.hpp" #include "opencv2/line_descriptor.hpp" #include diff --git a/modules/optflow/CMakeLists.txt b/modules/optflow/CMakeLists.txt index 41029bcf4..8cd4e1073 100644 --- a/modules/optflow/CMakeLists.txt +++ b/modules/optflow/CMakeLists.txt @@ -1,2 +1,2 @@ set(the_description "Optical Flow Algorithms") -ocv_define_module(optflow opencv_core opencv_imgproc opencv_video opencv_highgui opencv_ximgproc WRAP python) +ocv_define_module(optflow opencv_core opencv_imgproc opencv_video opencv_ximgproc opencv_imgcodecs WRAP python) diff --git a/modules/optflow/src/deepflow.cpp b/modules/optflow/src/deepflow.cpp index a813e5a94..1afc58fa1 100644 --- a/modules/optflow/src/deepflow.cpp +++ b/modules/optflow/src/deepflow.cpp @@ -41,7 +41,6 @@ //M*/ #include "precomp.hpp" -#include namespace cv { diff --git a/modules/optflow/src/interfaces.cpp b/modules/optflow/src/interfaces.cpp index d2830eb14..4d9a1cea8 100644 --- a/modules/optflow/src/interfaces.cpp +++ b/modules/optflow/src/interfaces.cpp @@ -42,7 +42,6 @@ #include "precomp.hpp" #include "opencv2/core.hpp" -#include "opencv2/highgui.hpp" #include "opencv2/video.hpp" #include "opencv2/optflow.hpp" diff --git a/modules/optflow/src/sparse_matching_gpc.cpp b/modules/optflow/src/sparse_matching_gpc.cpp index 649308a4d..8fa8179cf 100644 --- a/modules/optflow/src/sparse_matching_gpc.cpp +++ b/modules/optflow/src/sparse_matching_gpc.cpp @@ -43,7 +43,7 @@ #include "opencv2/core/core_c.h" #include "opencv2/core/private.hpp" #include "opencv2/flann/miniflann.hpp" -#include "opencv2/highgui.hpp" +#include "opencv2/imgcodecs.hpp" #include "precomp.hpp" #include "opencl_kernels_optflow.hpp" diff --git a/modules/phase_unwrapping/CMakeLists.txt b/modules/phase_unwrapping/CMakeLists.txt index 6ba892314..906e86afb 100644 --- a/modules/phase_unwrapping/CMakeLists.txt +++ b/modules/phase_unwrapping/CMakeLists.txt @@ -1,2 +1,2 @@ set(the_description "Phase Unwrapping API") -ocv_define_module(phase_unwrapping opencv_core opencv_calib3d opencv_imgproc opencv_highgui opencv_features2d opencv_rgbd WRAP python java) +ocv_define_module(phase_unwrapping opencv_core opencv_imgproc WRAP python java) diff --git a/modules/phase_unwrapping/test/test_precomp.hpp b/modules/phase_unwrapping/test/test_precomp.hpp index 6819defa1..16f5ce1b7 100644 --- a/modules/phase_unwrapping/test/test_precomp.hpp +++ b/modules/phase_unwrapping/test/test_precomp.hpp @@ -11,7 +11,6 @@ #include "opencv2/ts.hpp" #include "opencv2/phase_unwrapping.hpp" -#include #include #endif diff --git a/modules/plot/CMakeLists.txt b/modules/plot/CMakeLists.txt index 1c879fe36..e95f110f3 100644 --- a/modules/plot/CMakeLists.txt +++ b/modules/plot/CMakeLists.txt @@ -1,2 +1,2 @@ set(the_description "Plot function for Mat data.") -ocv_define_module(plot opencv_core opencv_highgui WRAP python) +ocv_define_module(plot opencv_core opencv_imgproc WRAP python) diff --git a/modules/rgbd/CMakeLists.txt b/modules/rgbd/CMakeLists.txt index f7c6b17e7..f2e022fe8 100644 --- a/modules/rgbd/CMakeLists.txt +++ b/modules/rgbd/CMakeLists.txt @@ -1,3 +1,2 @@ set(the_description "RGBD algorithms") -ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef) -ocv_define_module(rgbd opencv_core opencv_calib3d opencv_highgui opencv_imgproc WRAP python) +ocv_define_module(rgbd opencv_core opencv_calib3d opencv_imgproc WRAP python) diff --git a/modules/saliency/CMakeLists.txt b/modules/saliency/CMakeLists.txt index dcc83ebb0..f9bbffc91 100644 --- a/modules/saliency/CMakeLists.txt +++ b/modules/saliency/CMakeLists.txt @@ -4,6 +4,6 @@ endif() set(the_description "Saliency API") -ocv_define_module(saliency opencv_imgproc opencv_highgui opencv_features2d WRAP python) +ocv_define_module(saliency opencv_imgproc opencv_features2d WRAP python) ocv_warnings_disable(CMAKE_CXX_FLAGS -Woverloaded-virtual) diff --git a/modules/saliency/src/BING/CmShow.cpp b/modules/saliency/src/BING/CmShow.cpp index 3482b7027..25b54c626 100644 --- a/modules/saliency/src/BING/CmShow.cpp +++ b/modules/saliency/src/BING/CmShow.cpp @@ -42,7 +42,7 @@ #include "../precomp.hpp" #include "CmShow.hpp" #include "opencv2/core.hpp" -#include +// #include typedef std::pair CostiIdx; @@ -51,7 +51,7 @@ namespace cv namespace saliency { -Mat CmShow::HistBins( CMat& color3f, CMat& val, CStr& title, bool descendShow, CMat &with ) +Mat CmShow::HistBins( CMat& color3f, CMat& val, bool descendShow, CMat &with ) { // Prepare data int H = 300, spaceH = 6, barH = 10, n = color3f.cols; @@ -98,7 +98,6 @@ Mat CmShow::HistBins( CMat& color3f, CMat& val, CStr& title, bool descendShow, C x += binW[idx]; } - imshow( String( title.c_str() ), showImg3b ); return showImg3b; } diff --git a/modules/saliency/src/BING/CmShow.hpp b/modules/saliency/src/BING/CmShow.hpp index a15561c0c..d14aa3027 100644 --- a/modules/saliency/src/BING/CmShow.hpp +++ b/modules/saliency/src/BING/CmShow.hpp @@ -51,7 +51,7 @@ namespace saliency class CmShow { public: - static cv::Mat HistBins( CMat& color3f, CMat& val, CStr& title, bool descendShow = false, CMat &with = cv::Mat() ); + static cv::Mat HistBins( CMat& color3f, CMat& val, bool descendShow = false, CMat &with = cv::Mat() ); static void showTinyMat( CStr &title, CMat &m ); static inline void SaveShow( CMat& img, CStr& title ); }; diff --git a/modules/stereo/CMakeLists.txt b/modules/stereo/CMakeLists.txt index ccc078d6f..97297e879 100644 --- a/modules/stereo/CMakeLists.txt +++ b/modules/stereo/CMakeLists.txt @@ -1,2 +1,2 @@ set(the_description "Stereo Correspondence") -ocv_define_module(stereo opencv_imgproc opencv_features2d opencv_core opencv_highgui opencv_calib3d) +ocv_define_module(stereo opencv_imgproc opencv_features2d opencv_core opencv_calib3d) diff --git a/modules/stereo/src/precomp.hpp b/modules/stereo/src/precomp.hpp index cbb1ffd2a..3e36b4df3 100644 --- a/modules/stereo/src/precomp.hpp +++ b/modules/stereo/src/precomp.hpp @@ -49,7 +49,6 @@ #include "opencv2/core/utility.hpp" #include "opencv2/core/private.hpp" #include "opencv2/core/cvdef.h" -#include "opencv2/highgui.hpp" #include "opencv2/calib3d.hpp" #include diff --git a/modules/structured_light/CMakeLists.txt b/modules/structured_light/CMakeLists.txt index 556a29da6..ca06f1aee 100644 --- a/modules/structured_light/CMakeLists.txt +++ b/modules/structured_light/CMakeLists.txt @@ -1,2 +1,2 @@ set(the_description "Structured Light API") -ocv_define_module(structured_light opencv_core opencv_calib3d opencv_imgproc opencv_highgui opencv_features2d opencv_rgbd opencv_phase_unwrapping OPTIONAL opencv_viz WRAP python java) +ocv_define_module(structured_light opencv_core opencv_imgproc opencv_calib3d opencv_phase_unwrapping OPTIONAL opencv_viz WRAP python java) diff --git a/modules/structured_light/include/opencv2/structured_light/sinusoidalpattern.hpp b/modules/structured_light/include/opencv2/structured_light/sinusoidalpattern.hpp index c4549f593..61a45d6cf 100644 --- a/modules/structured_light/include/opencv2/structured_light/sinusoidalpattern.hpp +++ b/modules/structured_light/include/opencv2/structured_light/sinusoidalpattern.hpp @@ -148,4 +148,4 @@ public: //! @} } } -#endif \ No newline at end of file +#endif diff --git a/modules/structured_light/test/test_plane.cpp b/modules/structured_light/test/test_plane.cpp index 36f5b840c..6514b57cc 100644 --- a/modules/structured_light/test/test_plane.cpp +++ b/modules/structured_light/test/test_plane.cpp @@ -40,9 +40,8 @@ //M*/ #include "test_precomp.hpp" -#include #include -#include +#include #include #include diff --git a/modules/structured_light/test/test_precomp.hpp b/modules/structured_light/test/test_precomp.hpp index 4ae6738d7..7a09e198c 100644 --- a/modules/structured_light/test/test_precomp.hpp +++ b/modules/structured_light/test/test_precomp.hpp @@ -11,7 +11,6 @@ #include "opencv2/ts.hpp" #include "opencv2/structured_light.hpp" -#include #include -#endif \ No newline at end of file +#endif diff --git a/modules/tracking/CMakeLists.txt b/modules/tracking/CMakeLists.txt index 4487a7a2b..82e279085 100644 --- a/modules/tracking/CMakeLists.txt +++ b/modules/tracking/CMakeLists.txt @@ -1,2 +1,2 @@ set(the_description "Tracking API") -ocv_define_module(tracking opencv_imgproc opencv_core opencv_video opencv_highgui opencv_plot OPTIONAL opencv_dnn opencv_datasets WRAP java python) +ocv_define_module(tracking opencv_imgproc opencv_core opencv_video opencv_plot OPTIONAL opencv_dnn opencv_datasets WRAP java python) diff --git a/modules/tracking/include/opencv2/tracking/tldDataset.hpp b/modules/tracking/include/opencv2/tracking/tldDataset.hpp index d31919ab5..a87425566 100644 --- a/modules/tracking/include/opencv2/tracking/tldDataset.hpp +++ b/modules/tracking/include/opencv2/tracking/tldDataset.hpp @@ -42,15 +42,15 @@ #ifndef OPENCV_TLD_DATASET #define OPENCV_TLD_DATASET -#include "opencv2/highgui.hpp" +#include "opencv2/core.hpp" namespace cv { namespace tld { CV_EXPORTS cv::Rect2d tld_InitDataset(int videoInd, const char* rootPath = "TLD_dataset", int datasetInd = 0); - CV_EXPORTS cv::Mat tld_getNextDatasetFrame(); + CV_EXPORTS cv::String tld_getNextDatasetFrame(); } } -#endif \ No newline at end of file +#endif diff --git a/modules/tracking/include/opencv2/tracking/tracker.hpp b/modules/tracking/include/opencv2/tracking/tracker.hpp index 15003b9f9..0cce998e0 100644 --- a/modules/tracking/include/opencv2/tracking/tracker.hpp +++ b/modules/tracking/include/opencv2/tracking/tracker.hpp @@ -1370,42 +1370,6 @@ protected: String defaultAlgorithm; }; -class ROISelector { -public: - Rect2d select(Mat img, bool fromCenter = true); - Rect2d select(const cv::String& windowName, Mat img, bool showCrossair = true, bool fromCenter = true); - void select(const cv::String& windowName, Mat img, std::vector & boundingBox, bool fromCenter = true); - - struct handlerT{ - // basic parameters - bool isDrawing; - Rect2d box; - Mat image; - - // parameters for drawing from the center - bool drawFromCenter; - Point2f center; - - // initializer list - handlerT() : isDrawing(false), drawFromCenter(true) {}; - }selectorParams; - - // to store the tracked objects - std::vector objects; - -private: - static void mouseHandler(int event, int x, int y, int flags, void *param); - void opencv_mouse_callback(int event, int x, int y, int, void *param); - - // save the keypressed characted - int key; -}; - -Rect2d CV_EXPORTS_W selectROI(Mat img, bool fromCenter = true); -Rect2d CV_EXPORTS_W selectROI(const cv::String& windowName, Mat img, bool showCrossair = true, bool fromCenter = true); -void CV_EXPORTS_W selectROI(const cv::String& windowName, Mat img, std::vector & boundingBox, bool fromCenter = true); - - /************************************ Multi-Tracker Classes ---By Tyan Vladimir---************************************/ /** @brief Base abstract class for the long-term Multi Object Trackers: diff --git a/modules/tracking/samples/multitracker.cpp b/modules/tracking/samples/multitracker.cpp index fe6bdf99c..d427cd64d 100644 --- a/modules/tracking/samples/multitracker.cpp +++ b/modules/tracking/samples/multitracker.cpp @@ -24,6 +24,7 @@ #include #include #include +#include "roiSelector.hpp" #ifdef HAVE_OPENCV #include diff --git a/modules/tracking/samples/roiSelector.hpp b/modules/tracking/samples/roiSelector.hpp new file mode 100644 index 000000000..9d2626377 --- /dev/null +++ b/modules/tracking/samples/roiSelector.hpp @@ -0,0 +1,197 @@ +#ifndef _ROISELECTOR_HPP_ +#define _ROISELECTOR_HPP_ + +#include "opencv2/core.hpp" +#include "opencv2/highgui.hpp" +#include "opencv2/imgproc.hpp" + +cv::Rect2d selectROI(cv::Mat img, bool fromCenter = true); +cv::Rect2d selectROI(const cv::String& windowName, cv::Mat img, bool showCrossair = true, bool fromCenter = true); +void selectROI(const cv::String& windowName, cv::Mat img, std::vector & boundingBox, bool fromCenter = true); + +//================================================================================================== + +class ROISelector +{ + public: + cv::Rect2d select(cv::Mat img, bool fromCenter = true) + { + return select("ROI selector", img, fromCenter); + } + + cv::Rect2d select(const cv::String &windowName, cv::Mat img, bool showCrossair = true, bool fromCenter = true) + { + + key = 0; + + // set the drawing mode + selectorParams.drawFromCenter = fromCenter; + + // show the image and give feedback to user + cv::imshow(windowName, img); + + // copy the data, rectangle should be drawn in the fresh image + selectorParams.image = img.clone(); + + // select the object + cv::setMouseCallback(windowName, mouseHandler, (void *)&selectorParams); + + // end selection process on SPACE (32) ESC (27) or ENTER (13) + while (!(key == 32 || key == 27 || key == 13)) + { + // draw the selected object + cv::rectangle(selectorParams.image, selectorParams.box, cv::Scalar(255, 0, 0), 2, 1); + + // draw cross air in the middle of bounding box + if (showCrossair) + { + // horizontal line + cv::line(selectorParams.image, + cv::Point((int)selectorParams.box.x, + (int)(selectorParams.box.y + selectorParams.box.height / 2)), + cv::Point((int)(selectorParams.box.x + selectorParams.box.width), + (int)(selectorParams.box.y + selectorParams.box.height / 2)), + cv::Scalar(255, 0, 0), 2, 1); + + // vertical line + cv::line(selectorParams.image, + cv::Point((int)(selectorParams.box.x + selectorParams.box.width / 2), + (int)selectorParams.box.y), + cv::Point((int)(selectorParams.box.x + selectorParams.box.width / 2), + (int)(selectorParams.box.y + selectorParams.box.height)), + cv::Scalar(255, 0, 0), 2, 1); + } + + // show the image bouding box + cv::imshow(windowName, selectorParams.image); + + // reset the image + selectorParams.image = img.clone(); + + // get keyboard event, extract lower 8 bits for scancode comparison + key = cv::waitKey(1) & 0xFF; + } + + return selectorParams.box; + } + + void select(const cv::String &windowName, cv::Mat img, std::vector &boundingBox, bool fromCenter = true) + { + std::vector box; + cv::Rect2d temp; + key = 0; + + // show notice to user + printf("Select an object to track and then press SPACE or ENTER button!\n"); + printf("Finish the selection process by pressing ESC button!\n"); + + // while key is not ESC (27) + for (;;) + { + temp = select(windowName, img, true, fromCenter); + if (key == 27) + break; + if (temp.width > 0 && temp.height > 0) + box.push_back(temp); + } + boundingBox = box; + } + + struct handlerT + { + // basic parameters + bool isDrawing; + cv::Rect2d box; + cv::Mat image; + + // parameters for drawing from the center + bool drawFromCenter; + cv::Point2f center; + + // initializer list + handlerT() : isDrawing(false), drawFromCenter(true){}; + } selectorParams; + + // to store the tracked objects + std::vector objects; + + private: + static void mouseHandler(int event, int x, int y, int flags, void *param) + { + ROISelector *self = static_cast(param); + self->opencv_mouse_callback(event, x, y, flags, param); + } + + void opencv_mouse_callback(int event, int x, int y, int, void *param) + { + handlerT *data = (handlerT *)param; + switch (event) + { + // update the selected bounding box + case cv::EVENT_MOUSEMOVE: + if (data->isDrawing) + { + if (data->drawFromCenter) + { + data->box.width = 2 * (x - data->center.x) /*data->box.x*/; + data->box.height = 2 * (y - data->center.y) /*data->box.y*/; + data->box.x = data->center.x - data->box.width / 2.0; + data->box.y = data->center.y - data->box.height / 2.0; + } + else + { + data->box.width = x - data->box.x; + data->box.height = y - data->box.y; + } + } + break; + + // start to select the bounding box + case cv::EVENT_LBUTTONDOWN: + data->isDrawing = true; + data->box = cv::Rect2d(x, y, 0, 0); + data->center = cv::Point2f((float)x, (float)y); + break; + + // cleaning up the selected bounding box + case cv::EVENT_LBUTTONUP: + data->isDrawing = false; + if (data->box.width < 0) + { + data->box.x += data->box.width; + data->box.width *= -1; + } + if (data->box.height < 0) + { + data->box.y += data->box.height; + data->box.height *= -1; + } + break; + } + } + + // save the keypressed characted + int key; +}; + +//================================================================================================== + +static ROISelector _selector; + +cv::Rect2d selectROI(cv::Mat img, bool fromCenter) +{ + return _selector.select("ROI selector", img, true, fromCenter); +}; + +cv::Rect2d selectROI(const cv::String &windowName, cv::Mat img, bool showCrossair, bool fromCenter) +{ + printf("Select an object to track and then press SPACE or ENTER button!\n"); + return _selector.select(windowName, img, showCrossair, fromCenter); +}; + +void selectROI(const cv::String &windowName, cv::Mat img, std::vector &boundingBox, bool fromCenter) +{ + return _selector.select(windowName, img, boundingBox, fromCenter); +} + +#endif // _ROISELECTOR_HPP_ diff --git a/modules/tracking/samples/tutorial_customizing_cn_tracker.cpp b/modules/tracking/samples/tutorial_customizing_cn_tracker.cpp index 3131be397..298571cb1 100644 --- a/modules/tracking/samples/tutorial_customizing_cn_tracker.cpp +++ b/modules/tracking/samples/tutorial_customizing_cn_tracker.cpp @@ -4,6 +4,7 @@ #include #include #include +#include "roiSelector.hpp" using namespace std; using namespace cv; diff --git a/modules/tracking/samples/tutorial_introduction_to_tracker.cpp b/modules/tracking/samples/tutorial_introduction_to_tracker.cpp index d9907fac3..6c39e4767 100644 --- a/modules/tracking/samples/tutorial_introduction_to_tracker.cpp +++ b/modules/tracking/samples/tutorial_introduction_to_tracker.cpp @@ -4,6 +4,7 @@ #include #include #include +#include "roiSelector.hpp" using namespace std; using namespace cv; diff --git a/modules/tracking/samples/tutorial_multitracker.cpp b/modules/tracking/samples/tutorial_multitracker.cpp index 0d14c2087..762440ea3 100644 --- a/modules/tracking/samples/tutorial_multitracker.cpp +++ b/modules/tracking/samples/tutorial_multitracker.cpp @@ -14,6 +14,7 @@ #include #include #include +#include "roiSelector.hpp" using namespace std; using namespace cv; diff --git a/modules/tracking/src/gtrUtils.hpp b/modules/tracking/src/gtrUtils.hpp index 41aad213c..fedf26f88 100644 --- a/modules/tracking/src/gtrUtils.hpp +++ b/modules/tracking/src/gtrUtils.hpp @@ -3,7 +3,6 @@ #include "precomp.hpp" #include -#include "opencv2/highgui.hpp" namespace cv { diff --git a/modules/tracking/src/roiSelector.cpp b/modules/tracking/src/roiSelector.cpp deleted file mode 100644 index a1a7e6ed3..000000000 --- a/modules/tracking/src/roiSelector.cpp +++ /dev/null @@ -1,185 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// - // - // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. - // - // By downloading, copying, installing or using the software you agree to this license. - // If you do not agree to this license, do not download, install, - // copy or use the software. - // - // - // License Agreement - // For Open Source Computer Vision Library - // - // Copyright (C) 2013, OpenCV Foundation, all rights reserved. - // Third party copyrights are property of their respective owners. - // - // Redistribution and use in source and binary forms, with or without modification, - // are permitted provided that the following conditions are met: - // - // * Redistribution's of source code must retain the above copyright notice, - // this list of conditions and the following disclaimer. - // - // * Redistribution's in binary form must reproduce the above copyright notice, - // this list of conditions and the following disclaimer in the documentation - // and/or other materials provided with the distribution. - // - // * The name of the copyright holders may not be used to endorse or promote products - // derived from this software without specific prior written permission. - // - // This software is provided by the copyright holders and contributors "as is" and - // any express or implied warranties, including, but not limited to, the implied - // warranties of merchantability and fitness for a particular purpose are disclaimed. - // In no event shall the Intel Corporation or contributors be liable for any direct, - // indirect, incidental, special, exemplary, or consequential damages - // (including, but not limited to, procurement of substitute goods or services; - // loss of use, data, or profits; or business interruption) however caused - // and on any theory of liability, whether in contract, strict liability, - // or tort (including negligence or otherwise) arising in any way out of - // the use of this software, even if advised of the possibility of such damage. - // - //M*/ - -#include "precomp.hpp" - -namespace cv { - void ROISelector::mouseHandler(int event, int x, int y, int flags, void *param){ - ROISelector *self =static_cast(param); - self->opencv_mouse_callback(event,x,y,flags,param); - } - - void ROISelector::opencv_mouse_callback( int event, int x, int y, int , void *param ){ - handlerT * data = (handlerT*)param; - switch( event ){ - // update the selected bounding box - case EVENT_MOUSEMOVE: - if( data->isDrawing ){ - if(data->drawFromCenter){ - data->box.width = 2*(x-data->center.x)/*data->box.x*/; - data->box.height = 2*(y-data->center.y)/*data->box.y*/; - data->box.x = data->center.x-data->box.width/2.0; - data->box.y = data->center.y-data->box.height/2.0; - }else{ - data->box.width = x-data->box.x; - data->box.height = y-data->box.y; - } - } - break; - - // start to select the bounding box - case EVENT_LBUTTONDOWN: - data->isDrawing = true; - data->box = cvRect( x, y, 0, 0 ); - data->center = Point2f((float)x,(float)y); - break; - - // cleaning up the selected bounding box - case EVENT_LBUTTONUP: - data->isDrawing = false; - if( data->box.width < 0 ){ - data->box.x += data->box.width; - data->box.width *= -1; - } - if( data->box.height < 0 ){ - data->box.y += data->box.height; - data->box.height *= -1; - } - break; - } - } - - Rect2d ROISelector::select(Mat img, bool fromCenter){ - return select("ROI selector", img, fromCenter); - } - - Rect2d ROISelector::select(const cv::String& windowName, Mat img, bool showCrossair, bool fromCenter){ - - key=0; - - // set the drawing mode - selectorParams.drawFromCenter = fromCenter; - - // show the image and give feedback to user - imshow(windowName,img); - - // copy the data, rectangle should be drawn in the fresh image - selectorParams.image=img.clone(); - - // select the object - setMouseCallback( windowName, mouseHandler, (void *)&selectorParams ); - - // end selection process on SPACE (32) ESC (27) or ENTER (13) - while(!(key==32 || key==27 || key==13)){ - // draw the selected object - rectangle( - selectorParams.image, - selectorParams.box, - Scalar(255,0,0),2,1 - ); - - // draw cross air in the middle of bounding box - if(showCrossair){ - // horizontal line - line( - selectorParams.image, - Point((int)selectorParams.box.x,(int)(selectorParams.box.y+selectorParams.box.height/2)), - Point((int)(selectorParams.box.x+selectorParams.box.width),(int)(selectorParams.box.y+selectorParams.box.height/2)), - Scalar(255,0,0),2,1 - ); - - // vertical line - line( - selectorParams.image, - Point((int)(selectorParams.box.x+selectorParams.box.width/2),(int)selectorParams.box.y), - Point((int)(selectorParams.box.x+selectorParams.box.width/2),(int)(selectorParams.box.y+selectorParams.box.height)), - Scalar(255,0,0),2,1 - ); - } - - // show the image bouding box - imshow(windowName,selectorParams.image); - - // reset the image - selectorParams.image=img.clone(); - - //get keyboard event, extract lower 8 bits for scancode comparison - key=waitKey(1) & 0xFF; - } - - - return selectorParams.box; - } - - void ROISelector::select(const cv::String& windowName, Mat img, std::vector & boundingBox, bool fromCenter){ - std::vector box; - Rect2d temp; - key=0; - - // show notice to user - printf("Select an object to track and then press SPACE or ENTER button!\n" ); - printf("Finish the selection process by pressing ESC button!\n" ); - - // while key is not ESC (27) - for(;;) { - temp=select(windowName, img, true, fromCenter); - if(key==27) break; - if(temp.width>0 && temp.height>0) - box.push_back(temp); - } - boundingBox=box; - } - - ROISelector _selector; - Rect2d selectROI(Mat img, bool fromCenter){ - return _selector.select("ROI selector", img, true, fromCenter); - }; - - Rect2d selectROI(const cv::String& windowName, Mat img, bool showCrossair, bool fromCenter){ - printf("Select an object to track and then press SPACE or ENTER button!\n" ); - return _selector.select(windowName,img, showCrossair, fromCenter); - }; - - void selectROI(const cv::String& windowName, Mat img, std::vector & boundingBox, bool fromCenter){ - return _selector.select(windowName, img, boundingBox, fromCenter); - } - -} /* namespace cv */ diff --git a/modules/tracking/src/tldDataset.cpp b/modules/tracking/src/tldDataset.cpp index 9ddbeed25..97b29645f 100644 --- a/modules/tracking/src/tldDataset.cpp +++ b/modules/tracking/src/tldDataset.cpp @@ -159,7 +159,7 @@ namespace cv return cv::Rect2d(x, y, w, h); } - cv::Mat tld_getNextDatasetFrame() + cv::String tld_getNextDatasetFrame() { char fullPath[100]; char numStr[10]; @@ -178,8 +178,8 @@ namespace cv else strcat(fullPath, ".jpg"); frameNum++; - return cv::imread(fullPath); + return fullPath; } } -} \ No newline at end of file +} diff --git a/modules/tracking/src/tldUtils.cpp b/modules/tracking/src/tldUtils.cpp index 5b03c700d..0792e726c 100644 --- a/modules/tracking/src/tldUtils.cpp +++ b/modules/tracking/src/tldUtils.cpp @@ -49,34 +49,6 @@ namespace tld //Debug functions and variables Rect2d etalon(14.0, 110.0, 20.0, 20.0); -void drawWithRects(const Mat& img, std::vector& blackOnes, Rect2d whiteOne) -{ - Mat image; - img.copyTo(image); - if( whiteOne.width >= 0 ) - rectangle( image, whiteOne, 255, 1, 1 ); - for( int i = 0; i < (int)blackOnes.size(); i++ ) - rectangle( image, blackOnes[i], 0, 1, 1 ); - imshow("img", image); -} -void drawWithRects(const Mat& img, std::vector& blackOnes, std::vector& whiteOnes, String filename) -{ - Mat image; - static int frameCounter = 1; - img.copyTo(image); - for( int i = 0; i < (int)whiteOnes.size(); i++ ) - rectangle( image, whiteOnes[i], 255, 1, 1 ); - for( int i = 0; i < (int)blackOnes.size(); i++ ) - rectangle( image, blackOnes[i], 0, 1, 1 ); - imshow("img", image); - if( filename.length() > 0 ) - { - char inbuf[100]; - sprintf(inbuf, "%s%d.jpg", filename.c_str(), frameCounter); - imwrite(inbuf, image); - frameCounter++; - } -} void myassert(const Mat& img) { int count = 0; diff --git a/modules/tracking/src/tldUtils.hpp b/modules/tracking/src/tldUtils.hpp index 9473ac9f6..e6090069a 100644 --- a/modules/tracking/src/tldUtils.hpp +++ b/modules/tracking/src/tldUtils.hpp @@ -2,7 +2,6 @@ #define OPENCV_TLD_UTILS #include "precomp.hpp" -#include "opencv2/highgui.hpp" namespace cv { @@ -35,8 +34,6 @@ namespace cv void myassert(const Mat& img); void printPatch(const Mat_& standardPatch); std::string type2str(const Mat& mat); - void drawWithRects(const Mat& img, std::vector& blackOnes, Rect2d whiteOne = Rect2d(-1.0, -1.0, -1.0, -1.0)); - void drawWithRects(const Mat& img, std::vector& blackOnes, std::vector& whiteOnes, String fileName = ""); //aux functions and variables template inline T CLIP(T x, T a, T b){ return std::min(std::max(x, a), b); } @@ -59,4 +56,4 @@ namespace cv } } -#endif \ No newline at end of file +#endif diff --git a/modules/tracking/tutorials/tutorial_introduction_to_tracker.markdown b/modules/tracking/tutorials/tutorial_introduction_to_tracker.markdown index 9e2b6eb89..5da2ab995 100644 --- a/modules/tracking/tutorials/tutorial_introduction_to_tracker.markdown +++ b/modules/tracking/tutorials/tutorial_introduction_to_tracker.markdown @@ -59,7 +59,6 @@ Explanation Using this function, you can select the bounding box of the tracked object using a GUI. With default parameters, the selection is started from the center of the box and a middle cross will be shown. - See @ref cv::selectROI for more detailed information. -# **Initializing the tracker object** diff --git a/modules/tracking/tutorials/tutorial_multitracker.markdown b/modules/tracking/tutorials/tutorial_multitracker.markdown index 4bc3e3c5c..f9c7605a5 100644 --- a/modules/tracking/tutorials/tutorial_multitracker.markdown +++ b/modules/tracking/tutorials/tutorial_multitracker.markdown @@ -28,9 +28,8 @@ Explanation @snippet tracking/samples/tutorial_multitracker.cpp selectmulti - You can use @ref cv::selectROI to select multiple objects with + You can use selectROI to select multiple objects with the result stored in a vector of @ref cv::Rect2d as shown in the code. - You can also use another kind of selection scheme, please refer to @ref cv::selectROI for detailed information. -# **Adding the tracked object to MultiTracker** diff --git a/modules/xfeatures2d/CMakeLists.txt b/modules/xfeatures2d/CMakeLists.txt index 35402f2a2..d5152faba 100644 --- a/modules/xfeatures2d/CMakeLists.txt +++ b/modules/xfeatures2d/CMakeLists.txt @@ -1,5 +1,4 @@ set(the_description "Contributed/Experimental Algorithms for Salient 2D Features Detection") -ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d opencv_calib3d opencv_shape opencv_highgui opencv_videoio opencv_ml - OPTIONAL opencv_cudaarithm WRAP python java) +ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d opencv_calib3d OPTIONAL opencv_shape opencv_cudaarithm WRAP python java) include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_vgg.cmake) include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_boostdesc.cmake) diff --git a/modules/xfeatures2d/samples/bagofwords_classification.cpp b/modules/xfeatures2d/samples/bagofwords_classification.cpp index b281531ea..8525ffd2f 100644 --- a/modules/xfeatures2d/samples/bagofwords_classification.cpp +++ b/modules/xfeatures2d/samples/bagofwords_classification.cpp @@ -1,3 +1,7 @@ +#include + +#ifdef HAVE_OPENCV_ML + #include "opencv2/opencv_modules.hpp" #include "opencv2/imgcodecs.hpp" #include "opencv2/highgui.hpp" @@ -7,7 +11,6 @@ #include "opencv2/ml.hpp" #include -#include #include #include @@ -2624,3 +2627,13 @@ int main(int argc, char** argv) } return 0; } + +#else + +int main() +{ + std::cerr << "OpenCV was built without ml module" << std::endl; + return 0; +} + +#endif // HAVE_OPENCV_ML diff --git a/modules/xfeatures2d/samples/shape_transformation.cpp b/modules/xfeatures2d/samples/shape_transformation.cpp index 1311f8bff..3c83b612c 100644 --- a/modules/xfeatures2d/samples/shape_transformation.cpp +++ b/modules/xfeatures2d/samples/shape_transformation.cpp @@ -1,6 +1,9 @@ /* * shape_context.cpp -- Shape context demo for shape matching */ +#include + +#ifdef HAVE_OPENCV_SHAPE #include "opencv2/shape.hpp" #include "opencv2/imgcodecs.hpp" @@ -9,7 +12,6 @@ #include "opencv2/features2d.hpp" #include "opencv2/xfeatures2d.hpp" #include -#include #include using namespace std; @@ -74,3 +76,13 @@ int main(int argc, char** argv) return 0; } + +#else + +int main() +{ + std::cerr << "OpenCV was built without shape module" << std::endl; + return 0; +} + +#endif // HAVE_OPENCV_SHAPE diff --git a/modules/xfeatures2d/samples/video_homography.cpp b/modules/xfeatures2d/samples/video_homography.cpp index d68eee506..7252fd64b 100644 --- a/modules/xfeatures2d/samples/video_homography.cpp +++ b/modules/xfeatures2d/samples/video_homography.cpp @@ -5,13 +5,16 @@ * Author: erublee */ +#include + +#ifdef HAVE_OPENCV_CALIB3D + #include "opencv2/calib3d.hpp" #include "opencv2/videoio.hpp" #include "opencv2/highgui.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/features2d.hpp" #include "opencv2/xfeatures2d.hpp" -#include #include #include @@ -232,3 +235,13 @@ int main(int ac, char ** av) } return 0; } + +#else + +int main() +{ + std::cerr << "OpenCV was built without calib3d module" << std::endl; + return 0; +} + +#endif diff --git a/modules/ximgproc/CMakeLists.txt b/modules/ximgproc/CMakeLists.txt index 1a6860d12..6e163ca76 100644 --- a/modules/ximgproc/CMakeLists.txt +++ b/modules/ximgproc/CMakeLists.txt @@ -1,2 +1,2 @@ set(the_description "Extended image processing module. It includes edge-aware filters and etc.") -ocv_define_module(ximgproc opencv_imgproc opencv_core opencv_highgui opencv_calib3d WRAP python) +ocv_define_module(ximgproc opencv_core opencv_imgproc opencv_calib3d opencv_imgcodecs WRAP python) diff --git a/modules/ximgproc/src/deriche_filter.cpp b/modules/ximgproc/src/deriche_filter.cpp index a2495e608..98821cd78 100644 --- a/modules/ximgproc/src/deriche_filter.cpp +++ b/modules/ximgproc/src/deriche_filter.cpp @@ -34,7 +34,6 @@ * the use of this software, even if advised of the possibility of such damage. */ #include "precomp.hpp" -#include "opencv2/highgui.hpp" #include #include #include diff --git a/modules/ximgproc/src/disparity_filters.cpp b/modules/ximgproc/src/disparity_filters.cpp index 77eb6ac7f..84f4498cc 100644 --- a/modules/ximgproc/src/disparity_filters.cpp +++ b/modules/ximgproc/src/disparity_filters.cpp @@ -2,26 +2,26 @@ * By downloading, copying, installing or using the software you agree to this license. * If you do not agree to this license, do not download, install, * copy or use the software. - * - * + * + * * License Agreement * For Open Source Computer Vision Library * (3 - clause BSD License) - * + * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met : - * + * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. - * + * * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and / or other materials provided with the distribution. - * + * * * Neither the names of the copyright holders nor the names of the contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. - * + * * This software is provided by the copyright holders and contributors "as is" and * any express or implied warranties, including, but not limited to, the implied * warranties of merchantability and fitness for a particular purpose are disclaimed. @@ -36,7 +36,7 @@ #include "precomp.hpp" #include "opencv2/ximgproc/disparity_filter.hpp" -#include "opencv2/highgui.hpp" +#include "opencv2/imgcodecs.hpp" #include #include diff --git a/modules/ximgproc/src/paillou_filter.cpp b/modules/ximgproc/src/paillou_filter.cpp index 590266d30..59701de71 100644 --- a/modules/ximgproc/src/paillou_filter.cpp +++ b/modules/ximgproc/src/paillou_filter.cpp @@ -34,7 +34,6 @@ * the use of this software, even if advised of the possibility of such damage. */ #include "precomp.hpp" -#include "opencv2/highgui.hpp" #include #include #include diff --git a/modules/ximgproc/src/rolling_guidance_filter.cpp b/modules/ximgproc/src/rolling_guidance_filter.cpp index 0786ea026..7e6d26744 100644 --- a/modules/ximgproc/src/rolling_guidance_filter.cpp +++ b/modules/ximgproc/src/rolling_guidance_filter.cpp @@ -36,7 +36,6 @@ #include "precomp.hpp" #include -#include namespace cv { diff --git a/modules/ximgproc/src/selectivesearchsegmentation.cpp b/modules/ximgproc/src/selectivesearchsegmentation.cpp index cfcc7c035..08a769d4c 100644 --- a/modules/ximgproc/src/selectivesearchsegmentation.cpp +++ b/modules/ximgproc/src/selectivesearchsegmentation.cpp @@ -39,7 +39,6 @@ the use of this software, even if advised of the possibility of such damage. ********************************************************************************/ #include "precomp.hpp" -#include "opencv2/highgui.hpp" #include "opencv2/ximgproc/segmentation.hpp" #include diff --git a/modules/xobjdetect/CMakeLists.txt b/modules/xobjdetect/CMakeLists.txt index 39d20d30e..1727a42b7 100644 --- a/modules/xobjdetect/CMakeLists.txt +++ b/modules/xobjdetect/CMakeLists.txt @@ -1,5 +1,5 @@ set(the_description "Object detection algorithms") -ocv_define_module(xobjdetect opencv_core opencv_imgproc opencv_highgui opencv_objdetect WRAP python) +ocv_define_module(xobjdetect opencv_core opencv_imgproc opencv_objdetect opencv_imgcodecs WRAP python) if (BUILD_opencv_apps AND NOT APPLE_FRAMEWORK) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/tools ${CMAKE_CURRENT_BINARY_DIR}/tools) endif() diff --git a/modules/xobjdetect/include/opencv2/xobjdetect.hpp b/modules/xobjdetect/include/opencv2/xobjdetect.hpp index 45038ab24..13dde112b 100644 --- a/modules/xobjdetect/include/opencv2/xobjdetect.hpp +++ b/modules/xobjdetect/include/opencv2/xobjdetect.hpp @@ -43,7 +43,6 @@ the use of this software, even if advised of the possibility of such damage. #define __OPENCV_XOBJDETECT_XOBJDETECT_HPP__ #include -#include #include #include diff --git a/modules/xobjdetect/src/precomp.hpp b/modules/xobjdetect/src/precomp.hpp index daf8f615e..968374af2 100644 --- a/modules/xobjdetect/src/precomp.hpp +++ b/modules/xobjdetect/src/precomp.hpp @@ -53,7 +53,6 @@ the use of this software, even if advised of the possibility of such damage. #include #include -#include #include #include diff --git a/modules/xobjdetect/src/wbdetector.hpp b/modules/xobjdetect/src/wbdetector.hpp index 86247ea0f..631a4232b 100644 --- a/modules/xobjdetect/src/wbdetector.hpp +++ b/modules/xobjdetect/src/wbdetector.hpp @@ -43,7 +43,6 @@ the use of this software, even if advised of the possibility of such damage. #define __OPENCV_XOBJDETECT_DETECTOR_HPP__ #include -#include #include #include #include "precomp.hpp" diff --git a/modules/xobjdetect/tools/waldboost_detector/waldboost_detector.cpp b/modules/xobjdetect/tools/waldboost_detector/waldboost_detector.cpp index 490cdd585..6f196bf50 100644 --- a/modules/xobjdetect/tools/waldboost_detector/waldboost_detector.cpp +++ b/modules/xobjdetect/tools/waldboost_detector/waldboost_detector.cpp @@ -1,6 +1,7 @@ -#include -#include -#include +#include "opencv2/xobjdetect.hpp" +#include "opencv2/imgcodecs.hpp" +#include "opencv2/imgcodecs/imgcodecs_c.h" +#include "opencv2/imgproc.hpp" #include #include using namespace std; diff --git a/modules/xphoto/CMakeLists.txt b/modules/xphoto/CMakeLists.txt index 44a1e8a0c..3e550a3c8 100644 --- a/modules/xphoto/CMakeLists.txt +++ b/modules/xphoto/CMakeLists.txt @@ -1,2 +1,2 @@ set(the_description "Addon to basic photo module") -ocv_define_module(xphoto opencv_core opencv_imgproc OPTIONAL opencv_photo opencv_highgui opencv_photo WRAP python) +ocv_define_module(xphoto opencv_core opencv_imgproc WRAP python) diff --git a/modules/xphoto/test/test_precomp.hpp b/modules/xphoto/test/test_precomp.hpp index 5cd8e80ce..fe59eeefb 100644 --- a/modules/xphoto/test/test_precomp.hpp +++ b/modules/xphoto/test/test_precomp.hpp @@ -13,7 +13,6 @@ #include "opencv2/imgproc.hpp" #include "opencv2/imgproc/types_c.h" #include "opencv2/highgui.hpp" -#include "opencv2/photo.hpp" #include "opencv2/xphoto.hpp" #include "opencv2/ts.hpp"