class cv::videostab::StabilizerBase

#include <stabilizer.hpp>

class StabilizerBase
{
public:
    // methods

    int
    borderMode() const;

    Ptr<DeblurerBase>
    deblurrer() const;

    bool
    doCorrectionForInclusion() const;

    Ptr<IFrameSource>
    frameSource() const;

    Ptr<InpainterBase>
    inpainter() const;

    Ptr<ILog>
    log() const;

    Ptr<ImageMotionEstimatorBase>
    motionEstimator() const;

    int
    radius() const;

    void
    setBorderMode(int val);

    void
    setCorrectionForInclusion(bool val);

    void
    setDeblurer(Ptr<DeblurerBase> val);

    void
    setFrameSource(Ptr<IFrameSource> val);

    void
    setInpainter(Ptr<InpainterBase> val);

    void
    setLog(Ptr<ILog> ilog);

    void
    setMotionEstimator(Ptr<ImageMotionEstimatorBase> val);

    void
    setRadius(int val);

    void
    setTrimRatio(float val);

    float
    trimRatio() const;

protected:
    // fields

    std::vector<float> blurrinessRates_;
    int borderMode_;
    int curPos_;
    int curStabilizedPos_;
    Ptr<DeblurerBase> deblurer_;
    bool doCorrectionForInclusion_;
    bool doDeblurring_;
    bool doInpainting_;
    Mat finalFrame_;
    Mat frameMask_;
    std::vector<Mat> frames_;
    Size frameSize_;
    Ptr<IFrameSource> frameSource_;
    Ptr<InpainterBase> inpainter_;
    Mat inpaintingMask_;
    Ptr<ILog> log_;
    Ptr<ImageMotionEstimatorBase> motionEstimator_;
    std::vector<Mat> motions_;
    Mat preProcessedFrame_;
    clock_t processingStartTime_;
    int radius_;
    std::vector<Mat> stabilizationMotions_;
    std::vector<Mat> stabilizedFrames_;
    std::vector<Mat> stabilizedMasks_;
    float trimRatio_;

    // methods

    bool
    doOneIteration();

    virtual
    Mat
    estimateMotion() = 0;

    virtual
    Mat
    estimateStabilizationMotion() = 0;

    void
    logProcessingTime();

    Mat
    nextStabilizedFrame();

    virtual
    Mat
    postProcessFrame(const Mat& frame);

    void
    reset();

    virtual
    void
    setUp(const Mat& firstFrame);

    void
    stabilizeFrame();
};

// direct descendants

class OnePassStabilizer;
class TwoPassStabilizer;