mirror of
https://github.com/storytold/LiveScan3D.git
synced 2026-10-24 08:15:06 +00:00
Moved to Visual Studio 2015, OpenCV 3.2.0, x64
This commit is contained in:
@@ -40,25 +40,29 @@
|
||||
//
|
||||
//M*/
|
||||
|
||||
#ifndef __OPENCV_VIDEOSTAB_INPAINTINT_HPP__
|
||||
#define __OPENCV_VIDEOSTAB_INPAINTINT_HPP__
|
||||
#ifndef OPENCV_VIDEOSTAB_INPAINTINT_HPP
|
||||
#define OPENCV_VIDEOSTAB_INPAINTINT_HPP
|
||||
|
||||
#include <vector>
|
||||
#include "opencv2/core/core.hpp"
|
||||
#include "opencv2/core.hpp"
|
||||
#include "opencv2/videostab/optical_flow.hpp"
|
||||
#include "opencv2/videostab/fast_marching.hpp"
|
||||
#include "opencv2/photo/photo.hpp"
|
||||
#include "opencv2/videostab/global_motion.hpp"
|
||||
#include "opencv2/photo.hpp"
|
||||
|
||||
namespace cv
|
||||
{
|
||||
namespace videostab
|
||||
{
|
||||
|
||||
//! @addtogroup videostab
|
||||
//! @{
|
||||
|
||||
class CV_EXPORTS InpainterBase
|
||||
{
|
||||
public:
|
||||
InpainterBase()
|
||||
: radius_(0), frames_(0), motions_(0),
|
||||
: radius_(0), motionModel_(MM_UNKNOWN), frames_(0), motions_(0),
|
||||
stabilizedFrames_(0), stabilizationMotions_(0) {}
|
||||
|
||||
virtual ~InpainterBase() {}
|
||||
@@ -66,6 +70,14 @@ public:
|
||||
virtual void setRadius(int val) { radius_ = val; }
|
||||
virtual int radius() const { return radius_; }
|
||||
|
||||
virtual void setMotionModel(MotionModel val) { motionModel_ = val; }
|
||||
virtual MotionModel motionModel() const { return motionModel_; }
|
||||
|
||||
virtual void inpaint(int idx, Mat &frame, Mat &mask) = 0;
|
||||
|
||||
|
||||
// data from stabilizer
|
||||
|
||||
virtual void setFrames(const std::vector<Mat> &val) { frames_ = &val; }
|
||||
virtual const std::vector<Mat>& frames() const { return *frames_; }
|
||||
|
||||
@@ -78,12 +90,9 @@ public:
|
||||
virtual void setStabilizationMotions(const std::vector<Mat> &val) { stabilizationMotions_ = &val; }
|
||||
virtual const std::vector<Mat>& stabilizationMotions() const { return *stabilizationMotions_; }
|
||||
|
||||
virtual void update() {}
|
||||
|
||||
virtual void inpaint(int idx, Mat &frame, Mat &mask) = 0;
|
||||
|
||||
protected:
|
||||
int radius_;
|
||||
MotionModel motionModel_;
|
||||
const std::vector<Mat> *frames_;
|
||||
const std::vector<Mat> *motions_;
|
||||
const std::vector<Mat> *stabilizedFrames_;
|
||||
@@ -103,13 +112,12 @@ public:
|
||||
bool empty() const { return inpainters_.empty(); }
|
||||
|
||||
virtual void setRadius(int val);
|
||||
virtual void setMotionModel(MotionModel val);
|
||||
virtual void setFrames(const std::vector<Mat> &val);
|
||||
virtual void setMotions(const std::vector<Mat> &val);
|
||||
virtual void setStabilizedFrames(const std::vector<Mat> &val);
|
||||
virtual void setStabilizationMotions(const std::vector<Mat> &val);
|
||||
|
||||
virtual void update();
|
||||
|
||||
virtual void inpaint(int idx, Mat &frame, Mat &mask);
|
||||
|
||||
private:
|
||||
@@ -175,8 +183,7 @@ private:
|
||||
class CV_EXPORTS ColorInpainter : public InpainterBase
|
||||
{
|
||||
public:
|
||||
ColorInpainter(int method = INPAINT_TELEA, double _radius = 2.)
|
||||
: method_(method), radius_(_radius) {}
|
||||
ColorInpainter(int method = INPAINT_TELEA, double radius = 2.);
|
||||
|
||||
virtual void inpaint(int idx, Mat &frame, Mat &mask);
|
||||
|
||||
@@ -186,6 +193,9 @@ private:
|
||||
Mat invMask_;
|
||||
};
|
||||
|
||||
inline ColorInpainter::ColorInpainter(int _method, double _radius)
|
||||
: method_(_method), radius_(_radius) {}
|
||||
|
||||
CV_EXPORTS void calcFlowMask(
|
||||
const Mat &flowX, const Mat &flowY, const Mat &errors, float maxError,
|
||||
const Mat &mask0, const Mat &mask1, Mat &flowMask);
|
||||
@@ -194,6 +204,8 @@ CV_EXPORTS void completeFrameAccordingToFlow(
|
||||
const Mat &flowMask, const Mat &flowX, const Mat &flowY, const Mat &frame1, const Mat &mask1,
|
||||
float distThresh, Mat& frame0, Mat &mask0);
|
||||
|
||||
//! @}
|
||||
|
||||
} // namespace videostab
|
||||
} // namespace cv
|
||||
|
||||
|
||||
Reference in New Issue
Block a user