Added motion stabilization pipeline (videostab module)

This commit is contained in:
Alexey Spizhevoy
2012-04-04 13:58:38 +00:00
parent 5ee7596cbc
commit a7da9681c3
2 changed files with 42 additions and 1 deletions
@@ -57,12 +57,26 @@ class CV_EXPORTS IMotionStabilizer
public:
virtual ~IMotionStabilizer() {}
// assumes that [range.first, range.second) is in or equals to [0, size-2]
// assumes that [0, size-1) is in or equals to [range.first, range.second)
virtual void stabilize(
int size, const std::vector<Mat> &motions, std::pair<int,int> range,
Mat *stabilizationMotions) const = 0;
};
class CV_EXPORTS MotionStabilizationPipeline : public IMotionStabilizer
{
public:
void pushBack(Ptr<IMotionStabilizer> stabilizer) { stabilizers_.push_back(stabilizer); }
bool empty() const { return stabilizers_.empty(); }
virtual void stabilize(
int size, const std::vector<Mat> &motions, std::pair<int,int> range,
Mat *stabilizationMotions) const;
private:
std::vector<Ptr<IMotionStabilizer> > stabilizers_;
};
class CV_EXPORTS MotionFilterBase : public IMotionStabilizer
{
public: