Commit f8807f18 authored by Maksim Shabunin's avatar Maksim Shabunin

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
parent f1a198d1
set(the_description "Background Segmentation Algorithms") 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)
set(the_description "Custom Calibration Pattern") 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)
set(the_description "datasets framework") 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 ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4267) # flann, Win64
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
#include <sys/stat.h> #include <sys/stat.h>
#include <opencv2/core.hpp> #include <opencv2/core.hpp>
#include <opencv2/highgui.hpp> #include "opencv2/imgcodecs.hpp"
using namespace std; using namespace std;
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
#include <sys/stat.h> #include <sys/stat.h>
#include <opencv2/core.hpp> #include <opencv2/core.hpp>
#include <opencv2/highgui.hpp> #include "opencv2/imgcodecs.hpp"
using namespace std; using namespace std;
......
set(the_description "Line descriptor") 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)
...@@ -56,10 +56,7 @@ ...@@ -56,10 +56,7 @@
#include <iostream> #include <iostream>
#include "opencv2/core/utility.hpp" #include "opencv2/core/utility.hpp"
//#include "opencv2/core/private.hpp"
#include <opencv2/imgproc.hpp> #include <opencv2/imgproc.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/highgui.hpp>
#include "opencv2/core.hpp" #include "opencv2/core.hpp"
/* define data types */ /* define data types */
......
...@@ -53,7 +53,6 @@ ...@@ -53,7 +53,6 @@
#include "opencv2/ts.hpp" #include "opencv2/ts.hpp"
#include "opencv2/highgui.hpp" #include "opencv2/highgui.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/line_descriptor.hpp" #include "opencv2/line_descriptor.hpp"
#ifdef GTEST_CREATE_SHARED_LIBRARY #ifdef GTEST_CREATE_SHARED_LIBRARY
......
...@@ -39,15 +39,16 @@ ...@@ -39,15 +39,16 @@
// //
//M*/ //M*/
#include <opencv2/line_descriptor.hpp> #include <iostream>
#ifdef HAVE_OPENCV_FEATURES2D
#include <opencv2/line_descriptor.hpp>
#include "opencv2/core/utility.hpp" #include "opencv2/core/utility.hpp"
#include <opencv2/imgproc.hpp> #include <opencv2/imgproc.hpp>
#include <opencv2/features2d.hpp> #include <opencv2/features2d.hpp>
#include <opencv2/highgui.hpp> #include <opencv2/highgui.hpp>
#include <iostream>
using namespace cv; using namespace cv;
using namespace cv::line_descriptor; using namespace cv::line_descriptor;
...@@ -98,4 +99,12 @@ int main( int argc, char** argv ) ...@@ -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
...@@ -39,14 +39,16 @@ ...@@ -39,14 +39,16 @@
// //
//M*/ //M*/
#include <opencv2/line_descriptor.hpp> #include <iostream>
#ifdef HAVE_OPENCV_FEATURES2D
#include <opencv2/line_descriptor.hpp>
#include "opencv2/core/utility.hpp" #include "opencv2/core/utility.hpp"
#include <opencv2/imgproc.hpp> #include <opencv2/imgproc.hpp>
#include <opencv2/features2d.hpp> #include <opencv2/features2d.hpp>
#include <opencv2/highgui.hpp> #include <opencv2/highgui.hpp>
#include <iostream>
#include <vector> #include <vector>
#include <time.h> #include <time.h>
...@@ -194,4 +196,12 @@ int main( int argc, char** argv ) ...@@ -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
...@@ -39,15 +39,16 @@ ...@@ -39,15 +39,16 @@
// //
//M*/ //M*/
#include <opencv2/line_descriptor.hpp> #include <iostream>
#ifdef HAVE_OPENCV_FEATURES2D
#include <opencv2/line_descriptor.hpp>
#include "opencv2/core/utility.hpp" #include "opencv2/core/utility.hpp"
#include <opencv2/imgproc.hpp> #include <opencv2/imgproc.hpp>
#include <opencv2/features2d.hpp> #include <opencv2/features2d.hpp>
#include <opencv2/highgui.hpp> #include <opencv2/highgui.hpp>
#include <iostream>
using namespace cv; using namespace cv;
using namespace cv::line_descriptor; using namespace cv::line_descriptor;
using namespace std; using namespace std;
...@@ -121,3 +122,13 @@ int main( int argc, char** argv ) ...@@ -121,3 +122,13 @@ int main( int argc, char** argv )
imshow( "Lines", output ); imshow( "Lines", output );
waitKey(); waitKey();
} }
#else
int main()
{
std::cerr << "OpenCV was built without features2d module" << std::endl;
return 0;
}
#endif // HAVE_OPENCV_FEATURES2D
...@@ -39,15 +39,16 @@ ...@@ -39,15 +39,16 @@
// //
//M*/ //M*/
#include <opencv2/line_descriptor.hpp> #include <iostream>
#ifdef HAVE_OPENCV_FEATURES2D
#include <opencv2/line_descriptor.hpp>
#include "opencv2/core/utility.hpp" #include "opencv2/core/utility.hpp"
#include <opencv2/imgproc.hpp> #include <opencv2/imgproc.hpp>
#include <opencv2/features2d.hpp> #include <opencv2/features2d.hpp>
#include <opencv2/highgui.hpp> #include <opencv2/highgui.hpp>
#include <iostream>
using namespace cv; using namespace cv;
using namespace cv::line_descriptor; using namespace cv::line_descriptor;
using namespace std; using namespace std;
...@@ -121,3 +122,13 @@ int main( int argc, char** argv ) ...@@ -121,3 +122,13 @@ int main( int argc, char** argv )
imshow( "LSD lines", output ); imshow( "LSD lines", output );
waitKey(); waitKey();
} }
#else
int main()
{
std::cerr << "OpenCV was built without features2d module" << std::endl;
return 0;
}
#endif // HAVE_OPENCV_FEATURES2D
...@@ -39,15 +39,16 @@ ...@@ -39,15 +39,16 @@
// //
//M*/ //M*/
#include <opencv2/line_descriptor.hpp> #include <iostream>
#ifdef HAVE_OPENCV_FEATURES2D
#include <opencv2/line_descriptor.hpp>
#include "opencv2/core/utility.hpp" #include "opencv2/core/utility.hpp"
#include <opencv2/imgproc.hpp> #include <opencv2/imgproc.hpp>
#include <opencv2/features2d.hpp> #include <opencv2/features2d.hpp>
#include <opencv2/highgui.hpp> #include <opencv2/highgui.hpp>
#include <iostream>
#define MATCHES_DIST_THRESHOLD 25 #define MATCHES_DIST_THRESHOLD 25
using namespace cv; using namespace cv;
...@@ -207,3 +208,12 @@ int main( int argc, char** argv ) ...@@ -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
...@@ -39,6 +39,10 @@ ...@@ -39,6 +39,10 @@
// //
//M*/ //M*/
#include <iostream>
#ifdef HAVE_OPENCV_FEATURES2D
#include <opencv2/line_descriptor.hpp> #include <opencv2/line_descriptor.hpp>
#include "opencv2/core/utility.hpp" #include "opencv2/core/utility.hpp"
...@@ -46,7 +50,6 @@ ...@@ -46,7 +50,6 @@
#include <opencv2/features2d.hpp> #include <opencv2/features2d.hpp>
#include <opencv2/highgui.hpp> #include <opencv2/highgui.hpp>
#include <iostream>
#include <vector> #include <vector>
using namespace cv; using namespace cv;
...@@ -140,3 +143,13 @@ int main( int argc, char** argv ) ...@@ -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
...@@ -54,8 +54,6 @@ ...@@ -54,8 +54,6 @@
#include "opencv2/core/utility.hpp" #include "opencv2/core/utility.hpp"
#include "opencv2/core/private.hpp" #include "opencv2/core/private.hpp"
#include <opencv2/imgproc.hpp> #include <opencv2/imgproc.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/highgui.hpp>
#include "opencv2/core.hpp" #include "opencv2/core.hpp"
#include <iostream> #include <iostream>
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
#include "opencv2/ts.hpp" #include "opencv2/ts.hpp"
#include "opencv2/imgproc.hpp" #include "opencv2/imgproc.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/highgui.hpp" #include "opencv2/highgui.hpp"
#include "opencv2/line_descriptor.hpp" #include "opencv2/line_descriptor.hpp"
#include <opencv2/core.hpp> #include <opencv2/core.hpp>
......
set(the_description "Optical Flow Algorithms") 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)
...@@ -41,7 +41,6 @@ ...@@ -41,7 +41,6 @@
//M*/ //M*/
#include "precomp.hpp" #include "precomp.hpp"
#include <opencv2/highgui.hpp>
namespace cv namespace cv
{ {
......
...@@ -42,7 +42,6 @@ ...@@ -42,7 +42,6 @@
#include "precomp.hpp" #include "precomp.hpp"
#include "opencv2/core.hpp" #include "opencv2/core.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/video.hpp" #include "opencv2/video.hpp"
#include "opencv2/optflow.hpp" #include "opencv2/optflow.hpp"
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
#include "opencv2/core/core_c.h" #include "opencv2/core/core_c.h"
#include "opencv2/core/private.hpp" #include "opencv2/core/private.hpp"
#include "opencv2/flann/miniflann.hpp" #include "opencv2/flann/miniflann.hpp"
#include "opencv2/highgui.hpp" #include "opencv2/imgcodecs.hpp"
#include "precomp.hpp" #include "precomp.hpp"
#include "opencl_kernels_optflow.hpp" #include "opencl_kernels_optflow.hpp"
......
set(the_description "Phase Unwrapping API") 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)
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
#include "opencv2/ts.hpp" #include "opencv2/ts.hpp"
#include "opencv2/phase_unwrapping.hpp" #include "opencv2/phase_unwrapping.hpp"
#include <opencv2/rgbd.hpp>
#include <iostream> #include <iostream>
#endif #endif
set(the_description "Plot function for Mat data.") 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)
set(the_description "RGBD algorithms") set(the_description "RGBD algorithms")
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef) ocv_define_module(rgbd opencv_core opencv_calib3d opencv_imgproc WRAP python)
ocv_define_module(rgbd opencv_core opencv_calib3d opencv_highgui opencv_imgproc WRAP python)
...@@ -4,6 +4,6 @@ endif() ...@@ -4,6 +4,6 @@ endif()
set(the_description "Saliency API") 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) ocv_warnings_disable(CMAKE_CXX_FLAGS -Woverloaded-virtual)
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
#include "../precomp.hpp" #include "../precomp.hpp"
#include "CmShow.hpp" #include "CmShow.hpp"
#include "opencv2/core.hpp" #include "opencv2/core.hpp"
#include <opencv2/highgui.hpp> // #include <opencv2/highgui.hpp>
typedef std::pair<int, int> CostiIdx; typedef std::pair<int, int> CostiIdx;
...@@ -51,7 +51,7 @@ namespace cv ...@@ -51,7 +51,7 @@ namespace cv
namespace saliency 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 // Prepare data
int H = 300, spaceH = 6, barH = 10, n = color3f.cols; 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 ...@@ -98,7 +98,6 @@ Mat CmShow::HistBins( CMat& color3f, CMat& val, CStr& title, bool descendShow, C
x += binW[idx]; x += binW[idx];
} }
imshow( String( title.c_str() ), showImg3b );
return showImg3b; return showImg3b;
} }
......
...@@ -51,7 +51,7 @@ namespace saliency ...@@ -51,7 +51,7 @@ namespace saliency
class CmShow class CmShow
{ {
public: 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 void showTinyMat( CStr &title, CMat &m );
static inline void SaveShow( CMat& img, CStr& title ); static inline void SaveShow( CMat& img, CStr& title );
}; };
......
set(the_description "Stereo Correspondence") 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)
...@@ -49,7 +49,6 @@ ...@@ -49,7 +49,6 @@
#include "opencv2/core/utility.hpp" #include "opencv2/core/utility.hpp"
#include "opencv2/core/private.hpp" #include "opencv2/core/private.hpp"
#include "opencv2/core/cvdef.h" #include "opencv2/core/cvdef.h"
#include "opencv2/highgui.hpp"
#include "opencv2/calib3d.hpp" #include "opencv2/calib3d.hpp"
#include <algorithm> #include <algorithm>
......
set(the_description "Structured Light API") 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)
...@@ -148,4 +148,4 @@ public: ...@@ -148,4 +148,4 @@ public:
//! @} //! @}
} }
} }
#endif #endif
\ No newline at end of file
...@@ -40,9 +40,8 @@ ...@@ -40,9 +40,8 @@
//M*/ //M*/
#include "test_precomp.hpp" #include "test_precomp.hpp"
#include <opencv2/rgbd.hpp>
#include <opencv2/core.hpp> #include <opencv2/core.hpp>
#include <opencv2/highgui.hpp> #include <opencv2/imgcodecs.hpp>
#include <opencv2/calib3d.hpp> #include <opencv2/calib3d.hpp>
#include <opencv2/imgproc.hpp> #include <opencv2/imgproc.hpp>
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
#include "opencv2/ts.hpp" #include "opencv2/ts.hpp"
#include "opencv2/structured_light.hpp" #include "opencv2/structured_light.hpp"
#include <opencv2/rgbd.hpp>
#include <iostream> #include <iostream>
#endif #endif
\ No newline at end of file
set(the_description "Tracking API") 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)
...@@ -42,15 +42,15 @@ ...@@ -42,15 +42,15 @@
#ifndef OPENCV_TLD_DATASET #ifndef OPENCV_TLD_DATASET
#define OPENCV_TLD_DATASET #define OPENCV_TLD_DATASET
#include "opencv2/highgui.hpp" #include "opencv2/core.hpp"
namespace cv namespace cv
{ {
namespace tld namespace tld
{ {
CV_EXPORTS cv::Rect2d tld_InitDataset(int videoInd, const char* rootPath = "TLD_dataset", int datasetInd = 0); 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 #endif
\ No newline at end of file
...@@ -1370,42 +1370,6 @@ protected: ...@@ -1370,42 +1370,6 @@ protected:
String defaultAlgorithm; 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<Rect2d> & 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<handlerT> 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<Rect2d> & boundingBox, bool fromCenter = true);
/************************************ Multi-Tracker Classes ---By Tyan Vladimir---************************************/ /************************************ Multi-Tracker Classes ---By Tyan Vladimir---************************************/
/** @brief Base abstract class for the long-term Multi Object Trackers: /** @brief Base abstract class for the long-term Multi Object Trackers:
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include <iostream> #include <iostream>
#include <cstring> #include <cstring>
#include <ctime> #include <ctime>
#include "roiSelector.hpp"
#ifdef HAVE_OPENCV #ifdef HAVE_OPENCV
#include <opencv2/flann.hpp> #include <opencv2/flann.hpp>
......
#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<cv::Rect2d> & 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<cv::Rect2d> &boundingBox, bool fromCenter = true)
{
std::vector<cv::Rect2d> 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<handlerT> objects;
private:
static void mouseHandler(int event, int x, int y, int flags, void *param)
{
ROISelector *self = static_cast<ROISelector *>(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<cv::Rect2d> &boundingBox, bool fromCenter)
{
return _selector.select(windowName, img, boundingBox, fromCenter);
}
#endif // _ROISELECTOR_HPP_
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include <opencv2/highgui.hpp> #include <opencv2/highgui.hpp>
#include <iostream> #include <iostream>
#include <cstring> #include <cstring>
#include "roiSelector.hpp"
using namespace std; using namespace std;
using namespace cv; using namespace cv;
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include <opencv2/highgui.hpp> #include <opencv2/highgui.hpp>
#include <iostream> #include <iostream>
#include <cstring> #include <cstring>
#include "roiSelector.hpp"
using namespace std; using namespace std;
using namespace cv; using namespace cv;
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <iostream> #include <iostream>
#include <cstring> #include <cstring>
#include <ctime> #include <ctime>
#include "roiSelector.hpp"
using namespace std; using namespace std;
using namespace cv; using namespace cv;
......
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
#include "precomp.hpp" #include "precomp.hpp"
#include <vector> #include <vector>
#include "opencv2/highgui.hpp"
namespace cv namespace cv
{ {
......
/*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<ROISelector*>(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<Rect2d> & boundingBox, bool fromCenter){
std::vector<Rect2d> 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<Rect2d> & boundingBox, bool fromCenter){
return _selector.select(windowName, img, boundingBox, fromCenter);
}
} /* namespace cv */
...@@ -159,7 +159,7 @@ namespace cv ...@@ -159,7 +159,7 @@ namespace cv
return cv::Rect2d(x, y, w, h); return cv::Rect2d(x, y, w, h);
} }
cv::Mat tld_getNextDatasetFrame() cv::String tld_getNextDatasetFrame()
{ {
char fullPath[100]; char fullPath[100];
char numStr[10]; char numStr[10];
...@@ -178,8 +178,8 @@ namespace cv ...@@ -178,8 +178,8 @@ namespace cv
else strcat(fullPath, ".jpg"); else strcat(fullPath, ".jpg");
frameNum++; frameNum++;
return cv::imread(fullPath); return fullPath;
} }
} }
} }
\ No newline at end of file
...@@ -49,34 +49,6 @@ namespace tld ...@@ -49,34 +49,6 @@ namespace tld
//Debug functions and variables //Debug functions and variables
Rect2d etalon(14.0, 110.0, 20.0, 20.0); Rect2d etalon(14.0, 110.0, 20.0, 20.0);
void drawWithRects(const Mat& img, std::vector<Rect2d>& 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<Rect2d>& blackOnes, std::vector<Rect2d>& 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) void myassert(const Mat& img)
{ {
int count = 0; int count = 0;
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
#define OPENCV_TLD_UTILS #define OPENCV_TLD_UTILS
#include "precomp.hpp" #include "precomp.hpp"
#include "opencv2/highgui.hpp"
namespace cv namespace cv
{ {
...@@ -35,8 +34,6 @@ namespace cv ...@@ -35,8 +34,6 @@ namespace cv
void myassert(const Mat& img); void myassert(const Mat& img);
void printPatch(const Mat_<uchar>& standardPatch); void printPatch(const Mat_<uchar>& standardPatch);
std::string type2str(const Mat& mat); std::string type2str(const Mat& mat);
void drawWithRects(const Mat& img, std::vector<Rect2d>& blackOnes, Rect2d whiteOne = Rect2d(-1.0, -1.0, -1.0, -1.0));
void drawWithRects(const Mat& img, std::vector<Rect2d>& blackOnes, std::vector<Rect2d>& whiteOnes, String fileName = "");
//aux functions and variables //aux functions and variables
template<typename T> inline T CLIP(T x, T a, T b){ return std::min(std::max(x, a), b); } template<typename T> inline T CLIP(T x, T a, T b){ return std::min(std::max(x, a), b); }
...@@ -59,4 +56,4 @@ namespace cv ...@@ -59,4 +56,4 @@ namespace cv
} }
} }
#endif #endif
\ No newline at end of file
...@@ -59,7 +59,6 @@ Explanation ...@@ -59,7 +59,6 @@ Explanation
Using this function, you can select the bounding box of the tracked object using a GUI. 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. 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** -# **Initializing the tracker object**
......
...@@ -28,9 +28,8 @@ Explanation ...@@ -28,9 +28,8 @@ Explanation
@snippet tracking/samples/tutorial_multitracker.cpp selectmulti @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. 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** -# **Adding the tracked object to MultiTracker**
......
set(the_description "Contributed/Experimental Algorithms for Salient 2D Features Detection") 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 ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d opencv_calib3d OPTIONAL opencv_shape opencv_cudaarithm WRAP python java)
OPTIONAL opencv_cudaarithm WRAP python java)
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_vgg.cmake) include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_vgg.cmake)
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_boostdesc.cmake) include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_boostdesc.cmake)
#include <iostream>
#ifdef HAVE_OPENCV_ML
#include "opencv2/opencv_modules.hpp" #include "opencv2/opencv_modules.hpp"
#include "opencv2/imgcodecs.hpp" #include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp" #include "opencv2/highgui.hpp"
...@@ -7,7 +11,6 @@ ...@@ -7,7 +11,6 @@
#include "opencv2/ml.hpp" #include "opencv2/ml.hpp"
#include <fstream> #include <fstream>
#include <iostream>
#include <memory> #include <memory>
#include <functional> #include <functional>
...@@ -2624,3 +2627,13 @@ int main(int argc, char** argv) ...@@ -2624,3 +2627,13 @@ int main(int argc, char** argv)
} }
return 0; return 0;
} }
#else
int main()
{
std::cerr << "OpenCV was built without ml module" << std::endl;
return 0;
}
#endif // HAVE_OPENCV_ML
/* /*
* shape_context.cpp -- Shape context demo for shape matching * shape_context.cpp -- Shape context demo for shape matching
*/ */
#include <iostream>
#ifdef HAVE_OPENCV_SHAPE
#include "opencv2/shape.hpp" #include "opencv2/shape.hpp"
#include "opencv2/imgcodecs.hpp" #include "opencv2/imgcodecs.hpp"
...@@ -9,7 +12,6 @@ ...@@ -9,7 +12,6 @@
#include "opencv2/features2d.hpp" #include "opencv2/features2d.hpp"
#include "opencv2/xfeatures2d.hpp" #include "opencv2/xfeatures2d.hpp"
#include <opencv2/core/utility.hpp> #include <opencv2/core/utility.hpp>
#include <iostream>
#include <string> #include <string>
using namespace std; using namespace std;
...@@ -74,3 +76,13 @@ int main(int argc, char** argv) ...@@ -74,3 +76,13 @@ int main(int argc, char** argv)
return 0; return 0;
} }
#else
int main()
{
std::cerr << "OpenCV was built without shape module" << std::endl;
return 0;
}
#endif // HAVE_OPENCV_SHAPE
...@@ -5,13 +5,16 @@ ...@@ -5,13 +5,16 @@
* Author: erublee * Author: erublee
*/ */
#include <iostream>
#ifdef HAVE_OPENCV_CALIB3D
#include "opencv2/calib3d.hpp" #include "opencv2/calib3d.hpp"
#include "opencv2/videoio.hpp" #include "opencv2/videoio.hpp"
#include "opencv2/highgui.hpp" #include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp" #include "opencv2/imgproc.hpp"
#include "opencv2/features2d.hpp" #include "opencv2/features2d.hpp"
#include "opencv2/xfeatures2d.hpp" #include "opencv2/xfeatures2d.hpp"
#include <iostream>
#include <list> #include <list>
#include <vector> #include <vector>
...@@ -232,3 +235,13 @@ int main(int ac, char ** av) ...@@ -232,3 +235,13 @@ int main(int ac, char ** av)
} }
return 0; return 0;
} }
#else
int main()
{
std::cerr << "OpenCV was built without calib3d module" << std::endl;
return 0;
}
#endif
set(the_description "Extended image processing module. It includes edge-aware filters and etc.") 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)
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
* the use of this software, even if advised of the possibility of such damage. * the use of this software, even if advised of the possibility of such damage.
*/ */
#include "precomp.hpp" #include "precomp.hpp"
#include "opencv2/highgui.hpp"
#include <math.h> #include <math.h>
#include <vector> #include <vector>
#include <iostream> #include <iostream>
......
...@@ -2,26 +2,26 @@ ...@@ -2,26 +2,26 @@
* By downloading, copying, installing or using the software you agree to this license. * 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, * If you do not agree to this license, do not download, install,
* copy or use the software. * copy or use the software.
* *
* *
* License Agreement * License Agreement
* For Open Source Computer Vision Library * For Open Source Computer Vision Library
* (3 - clause BSD License) * (3 - clause BSD License)
* *
* Redistribution and use in source and binary forms, with or without modification, * Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met : * are permitted provided that the following conditions are met :
* *
* * Redistributions of source code must retain the above copyright notice, * * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer. * this list of conditions and the following disclaimer.
* *
* * Redistributions in binary form must reproduce the above copyright notice, * * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation * this list of conditions and the following disclaimer in the documentation
* and / or other materials provided with the distribution. * and / or other materials provided with the distribution.
* *
* * Neither the names of the copyright holders nor the names of the contributors * * 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 * may be used to endorse or promote products derived from this software
* without specific prior written permission. * without specific prior written permission.
* *
* This software is provided by the copyright holders and contributors "as is" and * 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 * any express or implied warranties, including, but not limited to, the implied
* warranties of merchantability and fitness for a particular purpose are disclaimed. * warranties of merchantability and fitness for a particular purpose are disclaimed.
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
#include "precomp.hpp" #include "precomp.hpp"
#include "opencv2/ximgproc/disparity_filter.hpp" #include "opencv2/ximgproc/disparity_filter.hpp"
#include "opencv2/highgui.hpp" #include "opencv2/imgcodecs.hpp"
#include <math.h> #include <math.h>
#include <vector> #include <vector>
......
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
* the use of this software, even if advised of the possibility of such damage. * the use of this software, even if advised of the possibility of such damage.
*/ */
#include "precomp.hpp" #include "precomp.hpp"
#include "opencv2/highgui.hpp"
#include <math.h> #include <math.h>
#include <vector> #include <vector>
#include <iostream> #include <iostream>
......
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
#include "precomp.hpp" #include "precomp.hpp"
#include <opencv2/ximgproc.hpp> #include <opencv2/ximgproc.hpp>
#include <opencv2/highgui.hpp>
namespace cv namespace cv
{ {
......
...@@ -39,7 +39,6 @@ the use of this software, even if advised of the possibility of such damage. ...@@ -39,7 +39,6 @@ the use of this software, even if advised of the possibility of such damage.
********************************************************************************/ ********************************************************************************/
#include "precomp.hpp" #include "precomp.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/ximgproc/segmentation.hpp" #include "opencv2/ximgproc/segmentation.hpp"
#include <iostream> #include <iostream>
......
set(the_description "Object detection algorithms") 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) if (BUILD_opencv_apps AND NOT APPLE_FRAMEWORK)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/tools ${CMAKE_CURRENT_BINARY_DIR}/tools) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/tools ${CMAKE_CURRENT_BINARY_DIR}/tools)
endif() endif()
...@@ -43,7 +43,6 @@ the use of this software, even if advised of the possibility of such damage. ...@@ -43,7 +43,6 @@ the use of this software, even if advised of the possibility of such damage.
#define __OPENCV_XOBJDETECT_XOBJDETECT_HPP__ #define __OPENCV_XOBJDETECT_XOBJDETECT_HPP__
#include <opencv2/core.hpp> #include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <vector> #include <vector>
#include <string> #include <string>
......
...@@ -53,7 +53,6 @@ the use of this software, even if advised of the possibility of such damage. ...@@ -53,7 +53,6 @@ the use of this software, even if advised of the possibility of such damage.
#include <opencv2/imgproc/types_c.h> #include <opencv2/imgproc/types_c.h>
#include <opencv2/core.hpp> #include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgcodecs.hpp> #include <opencv2/imgcodecs.hpp>
#include <opencv2/imgcodecs/imgcodecs_c.h> #include <opencv2/imgcodecs/imgcodecs_c.h>
......
...@@ -43,7 +43,6 @@ the use of this software, even if advised of the possibility of such damage. ...@@ -43,7 +43,6 @@ the use of this software, even if advised of the possibility of such damage.
#define __OPENCV_XOBJDETECT_DETECTOR_HPP__ #define __OPENCV_XOBJDETECT_DETECTOR_HPP__
#include <opencv2/core.hpp> #include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <vector> #include <vector>
#include <string> #include <string>
#include "precomp.hpp" #include "precomp.hpp"
......
#include <opencv2/xobjdetect.hpp> #include "opencv2/xobjdetect.hpp"
#include <opencv2/imgcodecs/imgcodecs_c.h> #include "opencv2/imgcodecs.hpp"
#include <opencv2/imgproc.hpp> #include "opencv2/imgcodecs/imgcodecs_c.h"
#include "opencv2/imgproc.hpp"
#include <iostream> #include <iostream>
#include <cstdio> #include <cstdio>
using namespace std; using namespace std;
......
set(the_description "Addon to basic photo module") 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)
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#include "opencv2/imgproc.hpp" #include "opencv2/imgproc.hpp"
#include "opencv2/imgproc/types_c.h" #include "opencv2/imgproc/types_c.h"
#include "opencv2/highgui.hpp" #include "opencv2/highgui.hpp"
#include "opencv2/photo.hpp"
#include "opencv2/xphoto.hpp" #include "opencv2/xphoto.hpp"
#include "opencv2/ts.hpp" #include "opencv2/ts.hpp"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment