Commit f1cf411f authored by Andrey Pavlenko's avatar Andrey Pavlenko

fixing compilation on Windows

parent 4dff974e
...@@ -51,9 +51,9 @@ namespace cv ...@@ -51,9 +51,9 @@ namespace cv
namespace videostab namespace videostab
{ {
float calcBlurriness(const Mat &frame); CV_EXPORTS float calcBlurriness(const Mat &frame);
class IDeblurer class CV_EXPORTS IDeblurer
{ {
public: public:
IDeblurer() : radius_(0), frames_(0), motions_(0) {} IDeblurer() : radius_(0), frames_(0), motions_(0) {}
...@@ -81,13 +81,13 @@ protected: ...@@ -81,13 +81,13 @@ protected:
const std::vector<float> *blurrinessRates_; const std::vector<float> *blurrinessRates_;
}; };
class NullDeblurer : public IDeblurer class CV_EXPORTS NullDeblurer : public IDeblurer
{ {
public: public:
virtual void deblur(int idx, Mat &frame) {} virtual void deblur(int idx, Mat &frame) {}
}; };
class WeightingDeblurer : public IDeblurer class CV_EXPORTS WeightingDeblurer : public IDeblurer
{ {
public: public:
WeightingDeblurer(); WeightingDeblurer();
......
...@@ -54,7 +54,7 @@ namespace videostab ...@@ -54,7 +54,7 @@ namespace videostab
{ {
// See http://iwi.eldoc.ub.rug.nl/FILES/root/2004/JGraphToolsTelea/2004JGraphToolsTelea.pdf // See http://iwi.eldoc.ub.rug.nl/FILES/root/2004/JGraphToolsTelea/2004JGraphToolsTelea.pdf
class FastMarchingMethod class CV_EXPORTS FastMarchingMethod
{ {
public: public:
FastMarchingMethod() : inf_(1e6f) {} FastMarchingMethod() : inf_(1e6f) {}
......
...@@ -53,7 +53,7 @@ namespace cv ...@@ -53,7 +53,7 @@ namespace cv
namespace videostab namespace videostab
{ {
class IFrameSource class CV_EXPORTS IFrameSource
{ {
public: public:
virtual ~IFrameSource() {} virtual ~IFrameSource() {}
...@@ -61,14 +61,14 @@ public: ...@@ -61,14 +61,14 @@ public:
virtual Mat nextFrame() = 0; virtual Mat nextFrame() = 0;
}; };
class NullFrameSource : public IFrameSource class CV_EXPORTS NullFrameSource : public IFrameSource
{ {
public: public:
virtual void reset() {} virtual void reset() {}
virtual Mat nextFrame() { return Mat(); } virtual Mat nextFrame() { return Mat(); }
}; };
class VideoFileSource : public IFrameSource class CV_EXPORTS VideoFileSource : public IFrameSource
{ {
public: public:
VideoFileSource(const std::string &path, bool volatileFrame = false); VideoFileSource(const std::string &path, bool volatileFrame = false);
......
...@@ -60,11 +60,11 @@ enum MotionModel ...@@ -60,11 +60,11 @@ enum MotionModel
AFFINE = 2 AFFINE = 2
}; };
Mat estimateGlobalMotionLeastSquares( CV_EXPORTS Mat estimateGlobalMotionLeastSquares(
const std::vector<Point2f> &points0, const std::vector<Point2f> &points1, const std::vector<Point2f> &points0, const std::vector<Point2f> &points1,
int model = AFFINE, float *rmse = 0); int model = AFFINE, float *rmse = 0);
struct RansacParams CV_EXPORTS struct RansacParams
{ {
int size; // subset size int size; // subset size
float thresh; // max error to classify as inlier float thresh; // max error to classify as inlier
...@@ -79,19 +79,19 @@ struct RansacParams ...@@ -79,19 +79,19 @@ struct RansacParams
static RansacParams translationMotionStd() { return RansacParams(2, 0.5f, 0.5f, 0.99f); } static RansacParams translationMotionStd() { return RansacParams(2, 0.5f, 0.5f, 0.99f); }
}; };
Mat estimateGlobalMotionRobust( CV_EXPORTS Mat estimateGlobalMotionRobust(
const std::vector<Point2f> &points0, const std::vector<Point2f> &points1, const std::vector<Point2f> &points0, const std::vector<Point2f> &points1,
int model = AFFINE, const RansacParams &params = RansacParams::affine2dMotionStd(), int model = AFFINE, const RansacParams &params = RansacParams::affine2dMotionStd(),
float *rmse = 0, int *ninliers = 0); float *rmse = 0, int *ninliers = 0);
class IGlobalMotionEstimator class CV_EXPORTS IGlobalMotionEstimator
{ {
public: public:
virtual ~IGlobalMotionEstimator() {} virtual ~IGlobalMotionEstimator() {}
virtual Mat estimate(const Mat &frame0, const Mat &frame1) = 0; virtual Mat estimate(const Mat &frame0, const Mat &frame1) = 0;
}; };
class PyrLkRobustMotionEstimator : public IGlobalMotionEstimator class CV_EXPORTS PyrLkRobustMotionEstimator : public IGlobalMotionEstimator
{ {
public: public:
PyrLkRobustMotionEstimator(); PyrLkRobustMotionEstimator();
...@@ -129,14 +129,14 @@ private: ...@@ -129,14 +129,14 @@ private:
float minInlierRatio_; float minInlierRatio_;
}; };
Mat getMotion(int from, int to, const std::vector<Mat> &motions); CV_EXPORTS Mat getMotion(int from, int to, const std::vector<Mat> &motions);
Mat ensureInclusionConstraint(const Mat &M, Size size, float trimRatio); CV_EXPORTS Mat ensureInclusionConstraint(const Mat &M, Size size, float trimRatio);
float estimateOptimalTrimRatio(const Mat &M, Size size); CV_EXPORTS float estimateOptimalTrimRatio(const Mat &M, Size size);
// frame1 is non-transformed frame // frame1 is non-transformed frame
float alignementError(const Mat &M, const Mat &frame0, const Mat &mask0, const Mat &frame1); CV_EXPORTS float alignementError(const Mat &M, const Mat &frame0, const Mat &mask0, const Mat &frame1);
} // namespace videostab } // namespace videostab
} // namespace cv } // namespace cv
......
...@@ -53,7 +53,7 @@ namespace cv ...@@ -53,7 +53,7 @@ namespace cv
namespace videostab namespace videostab
{ {
class IInpainter class CV_EXPORTS IInpainter
{ {
public: public:
IInpainter() IInpainter()
...@@ -87,13 +87,13 @@ protected: ...@@ -87,13 +87,13 @@ protected:
const std::vector<Mat> *stabilizationMotions_; const std::vector<Mat> *stabilizationMotions_;
}; };
class NullInpainter : public IInpainter class CV_EXPORTS NullInpainter : public IInpainter
{ {
public: public:
virtual void inpaint(int idx, Mat &frame, Mat &mask) {} virtual void inpaint(int idx, Mat &frame, Mat &mask) {}
}; };
class InpaintingPipeline : public IInpainter class CV_EXPORTS InpaintingPipeline : public IInpainter
{ {
public: public:
void pushBack(Ptr<IInpainter> inpainter) { inpainters_.push_back(inpainter); } void pushBack(Ptr<IInpainter> inpainter) { inpainters_.push_back(inpainter); }
...@@ -111,7 +111,7 @@ private: ...@@ -111,7 +111,7 @@ private:
std::vector<Ptr<IInpainter> > inpainters_; std::vector<Ptr<IInpainter> > inpainters_;
}; };
class ConsistentMosaicInpainter : public IInpainter class CV_EXPORTS ConsistentMosaicInpainter : public IInpainter
{ {
public: public:
ConsistentMosaicInpainter(); ConsistentMosaicInpainter();
...@@ -125,7 +125,7 @@ private: ...@@ -125,7 +125,7 @@ private:
float stdevThresh_; float stdevThresh_;
}; };
class MotionInpainter : public IInpainter class CV_EXPORTS MotionInpainter : public IInpainter
{ {
public: public:
MotionInpainter(); MotionInpainter();
...@@ -154,7 +154,7 @@ private: ...@@ -154,7 +154,7 @@ private:
Mat_<uchar> flowMask_; Mat_<uchar> flowMask_;
}; };
class ColorAverageInpainter : public IInpainter class CV_EXPORTS ColorAverageInpainter : public IInpainter
{ {
public: public:
virtual void inpaint(int idx, Mat &frame, Mat &mask); virtual void inpaint(int idx, Mat &frame, Mat &mask);
...@@ -163,11 +163,11 @@ private: ...@@ -163,11 +163,11 @@ private:
FastMarchingMethod fmm_; FastMarchingMethod fmm_;
}; };
void calcFlowMask( CV_EXPORTS void calcFlowMask(
const Mat &flowX, const Mat &flowY, const Mat &errors, float maxError, const Mat &flowX, const Mat &flowY, const Mat &errors, float maxError,
const Mat &mask0, const Mat &mask1, Mat &flowMask); const Mat &mask0, const Mat &mask1, Mat &flowMask);
void completeFrameAccordingToFlow( CV_EXPORTS void completeFrameAccordingToFlow(
const Mat &flowMask, const Mat &flowX, const Mat &flowY, const Mat &frame1, const Mat &mask1, const Mat &flowMask, const Mat &flowX, const Mat &flowY, const Mat &frame1, const Mat &mask1,
Mat& frame0, Mat &mask0); Mat& frame0, Mat &mask0);
......
...@@ -43,25 +43,27 @@ ...@@ -43,25 +43,27 @@
#ifndef __OPENCV_VIDEOSTAB_LOG_HPP__ #ifndef __OPENCV_VIDEOSTAB_LOG_HPP__
#define __OPENCV_VIDEOSTAB_LOG_HPP__ #define __OPENCV_VIDEOSTAB_LOG_HPP__
#include "opencv2/core/core.hpp"
namespace cv namespace cv
{ {
namespace videostab namespace videostab
{ {
class ILog class CV_EXPORTS ILog
{ {
public: public:
virtual ~ILog() {} virtual ~ILog() {}
virtual void print(const char *format, ...) = 0; virtual void print(const char *format, ...) = 0;
}; };
class NullLog : public ILog class CV_EXPORTS NullLog : public ILog
{ {
public: public:
virtual void print(const char *format, ...) {} virtual void print(const char *format, ...) {}
}; };
class LogToStdout : public ILog class CV_EXPORTS LogToStdout : public ILog
{ {
public: public:
virtual void print(const char *format, ...); virtual void print(const char *format, ...);
......
...@@ -51,7 +51,7 @@ namespace cv ...@@ -51,7 +51,7 @@ namespace cv
namespace videostab namespace videostab
{ {
class IMotionFilter class CV_EXPORTS IMotionFilter
{ {
public: public:
virtual ~IMotionFilter() {} virtual ~IMotionFilter() {}
...@@ -59,7 +59,7 @@ public: ...@@ -59,7 +59,7 @@ public:
virtual Mat apply(int index, std::vector<Mat> &Ms) const = 0; virtual Mat apply(int index, std::vector<Mat> &Ms) const = 0;
}; };
class GaussianMotionFilter : public IMotionFilter class CV_EXPORTS GaussianMotionFilter : public IMotionFilter
{ {
public: public:
GaussianMotionFilter(int radius, float stdev); GaussianMotionFilter(int radius, float stdev);
......
...@@ -55,7 +55,7 @@ namespace cv ...@@ -55,7 +55,7 @@ namespace cv
namespace videostab namespace videostab
{ {
class ISparseOptFlowEstimator class CV_EXPORTS ISparseOptFlowEstimator
{ {
public: public:
virtual ~ISparseOptFlowEstimator() {} virtual ~ISparseOptFlowEstimator() {}
...@@ -64,7 +64,7 @@ public: ...@@ -64,7 +64,7 @@ public:
OutputArray status, OutputArray errors) = 0; OutputArray status, OutputArray errors) = 0;
}; };
class IDenseOptFlowEstimator class CV_EXPORTS IDenseOptFlowEstimator
{ {
public: public:
virtual ~IDenseOptFlowEstimator() {} virtual ~IDenseOptFlowEstimator() {}
...@@ -73,7 +73,7 @@ public: ...@@ -73,7 +73,7 @@ public:
OutputArray errors) = 0; OutputArray errors) = 0;
}; };
class PyrLkOptFlowEstimatorBase class CV_EXPORTS PyrLkOptFlowEstimatorBase
{ {
public: public:
PyrLkOptFlowEstimatorBase() { setWinSize(Size(21, 21)); setMaxLevel(3); } PyrLkOptFlowEstimatorBase() { setWinSize(Size(21, 21)); setMaxLevel(3); }
...@@ -89,7 +89,7 @@ protected: ...@@ -89,7 +89,7 @@ protected:
int maxLevel_; int maxLevel_;
}; };
class SparsePyrLkOptFlowEstimator class CV_EXPORTS SparsePyrLkOptFlowEstimator
: public PyrLkOptFlowEstimatorBase, public ISparseOptFlowEstimator : public PyrLkOptFlowEstimatorBase, public ISparseOptFlowEstimator
{ {
public: public:
...@@ -99,7 +99,7 @@ public: ...@@ -99,7 +99,7 @@ public:
}; };
#if HAVE_OPENCV_GPU #if HAVE_OPENCV_GPU
class DensePyrLkOptFlowEstimatorGpu class CV_EXPORTS DensePyrLkOptFlowEstimatorGpu
: public PyrLkOptFlowEstimatorBase, public IDenseOptFlowEstimator : public PyrLkOptFlowEstimatorBase, public IDenseOptFlowEstimator
{ {
public: public:
......
...@@ -58,7 +58,7 @@ namespace cv ...@@ -58,7 +58,7 @@ namespace cv
namespace videostab namespace videostab
{ {
class Stabilizer : public IFrameSource class CV_EXPORTS Stabilizer : public IFrameSource
{ {
public: public:
Stabilizer(); Stabilizer();
......
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