Added WITH_CLP flag support into cmake scripts.

pull/2/head
Alexey Spizhevoy 13 years ago
parent b5a1bad7a4
commit ae839df55d
  1. 18
      CMakeLists.txt
  2. 3
      cmake/templates/cvconfig.h.cmake
  3. 17
      modules/videostab/include/opencv2/videostab/motion_stabilizing.hpp
  4. 26
      modules/videostab/src/motion_stabilizing.cpp

@ -124,6 +124,7 @@ OCV_OPTION(WITH_V4L "Include Video 4 Linux support" ON
OCV_OPTION(WITH_VIDEOINPUT "Build HighGUI with DirectShow support" ON IF WIN32 )
OCV_OPTION(WITH_XIMEA "Include XIMEA cameras support" OFF IF WIN32 )
OCV_OPTION(WITH_XINE "Include Xine support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID AND NOT IOS) )
OCV_OPTION(WITH_CLP "Include Clp support (EPL)" OFF IF (NOT ANDROID AND NOT IOS) )
# OpenCV build components
# ===================================================
@ -527,6 +528,22 @@ if(WITH_EIGEN)
endif()
endif()
########################## Clp #####################################
set(HAVE_CLP FALSE)
if(WITH_CLP)
find_path(CLP_INCLUDE_PATH "coin"
PATHS "/usr/local/include" "/usr/include" "/opt/include"
DOC "The path to Clp headers")
if(CLP_INCLUDE_PATH)
ocv_include_directories(${CLP_INCLUDE_PATH})
set(CLP_LIBRARY_DIR "${CLP_INCLUDE_PATH}/../lib" CACHE PATH "Full path of Clp library directory")
link_directories(${CLP_LIBRARY_DIR})
set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} Clp OsiClp CoinUtils)
set(HAVE_CLP TRUE)
endif()
endif()
################## Extra HighGUI libs on Windows ###################
if(WIN32)
set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES} comctl32 gdi32 ole32)
@ -799,6 +816,7 @@ endif()
status(" Use TBB:" HAVE_TBB THEN YES ELSE NO)
status(" Use Cuda:" HAVE_CUDA THEN YES ELSE NO)
status(" Use Eigen:" HAVE_EIGEN THEN YES ELSE NO)
status(" Use Clp:" HAVE_CLP THEN YES ELSE NO)
status("")
status(" Python interpreter:" PYTHON_EXECUTABLE THEN "${PYTHON_EXECUTABLE} (ver ${PYTHON_VERSION_MAJOR_MINOR})" ELSE NO)

@ -195,3 +195,6 @@
/* OpenGL support*/
#cmakedefine HAVE_OPENGL
/* Clp support */
#cmakedefine HAVE_CLP

@ -46,6 +46,7 @@
#include <vector>
#include <utility>
#include "opencv2/core/core.hpp"
#include "opencv2/videostab/global_motion.hpp"
namespace cv
{
@ -108,6 +109,22 @@ private:
std::vector<float> weight_;
};
class CV_EXPORTS LpMotionStabilizer : public IMotionStabilizer
{
public:
LpMotionStabilizer(MotionModel model = LINEAR_SIMILARITY);
void setMotionModel(MotionModel val) { model_ = val; }
MotionModel motionModel() const { return model_; }
virtual void stabilize(
int size, const std::vector<Mat> &motions, std::pair<int,int> range,
Mat *stabilizationMotions) const;
private:
MotionModel model_;
};
CV_EXPORTS Mat ensureInclusionConstraint(const Mat &M, Size size, float trimRatio);
CV_EXPORTS float estimateOptimalTrimRatio(const Mat &M, Size size);

@ -45,6 +45,10 @@
#include "opencv2/videostab/global_motion.hpp"
#include "opencv2/videostab/ring_buffer.hpp"
#ifdef HAVE_CLP
#include "coin/ClpSimplex.hpp"
#endif
using namespace std;
namespace cv
@ -254,5 +258,27 @@ float estimateOptimalTrimRatio(const Mat &M, Size size)
return r;
}
LpMotionStabilizer::LpMotionStabilizer(MotionModel model)
{
setMotionModel(model);
}
#ifndef HAVE_CLP
void LpMotionStabilizer::stabilize(int, const vector<Mat>&, pair<int,int>, Mat*) const
{
CV_Error(CV_StsError, "The library is built without Clp support");
}
#else
void LpMotionStabilizer::stabilize(
int size, const vector<Mat> &motions, pair<int,int> range,
Mat *stabilizationMotions) const
{
// TODO implement
CV_Error(CV_StsNotImplemented, "LpMotionStabilizer::stabilize");
}
#endif
} // namespace videostab
} // namespace cv

Loading…
Cancel
Save