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
# ===================================================
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)
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)
/* OpenGL support*/
#cmakedefine HAVE_OPENGL
+
+/* Clp support */
+#cmakedefine HAVE_CLP
#include <vector>
#include <utility>
#include "opencv2/core/core.hpp"
+#include "opencv2/videostab/global_motion.hpp"
namespace cv
{
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);
#include "opencv2/opencv_modules.hpp"
#if HAVE_OPENCV_GPU
-# include "opencv2/gpu/gpu.hpp"
+#include "opencv2/gpu/gpu.hpp"
#endif
namespace cv
#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
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