Video Stabilization#

Topics#

Detailed Description#

The video stabilization module contains a set of functions and classes that can be used to solve the problem of video stabilization. There are a few methods implemented, most of them are described in the papers [209] and [126] . However, there are some extensions and deviations from the original paper methods.

References#

  1. “Full-Frame Video Stabilization with Motion Inpainting” Yasuyuki Matsushita, Eyal Ofek, Weina Ge, Xiaoou Tang, Senior Member, and Heung-Yeung Shum

  2. “Auto-Directed Video Stabilization with Robust L1 Optimal Camera Paths” Matthias Grundmann, Vivek Kwatra, Irfan Essa

Classes#

Name

Description

class cv::videostab::ColorAverageInpainter

View details

class cv::videostab::ColorInpainter

View details

class cv::videostab::ConsistentMosaicInpainter

View details

class cv::videostab::DeblurerBase

View details

class cv::videostab::IDenseOptFlowEstimator

View details

class cv::videostab::IFrameSource

View details

class cv::videostab::ILog

View details

class cv::videostab::InpainterBase

View details

class cv::videostab::InpaintingPipeline

View details

class cv::videostab::IOutlierRejector

View details

class cv::videostab::ISparseOptFlowEstimator

View details

class cv::videostab::LogToStdout

View details

class cv::videostab::MaskFrameSource

View details

class cv::videostab::MoreAccurateMotionWobbleSuppressor

View details

class cv::videostab::MoreAccurateMotionWobbleSuppressorBase

View details

class cv::videostab::MotionInpainter

View details

class cv::videostab::NullDeblurer

View details

class cv::videostab::NullFrameSource

View details

class cv::videostab::NullInpainter

View details

class cv::videostab::NullLog

View details

class cv::videostab::NullOutlierRejector

View details

class cv::videostab::NullWobbleSuppressor

View details

class cv::videostab::OnePassStabilizer

View details

class cv::videostab::PyrLkOptFlowEstimatorBase

View details

class cv::videostab::SparsePyrLkOptFlowEstimator

View details

class cv::videostab::StabilizerBase

View details

class cv::videostab::TranslationBasedLocalOutlierRejector

View details

class cv::videostab::TwoPassStabilizer

View details

class cv::videostab::VideoFileSource

View details

class cv::videostab::WeightingDeblurer

View details

class cv::videostab::WobbleSuppressorBase

View details

Functions#

Return

Name

Description

cv::ColorInpainter(
int method = INPAINT_TELEA,
double radius = 2. )

const T &

cv::at(
int idx,
const std::vector< T > & items )

T &

cv::at(
int idx,
std::vector< T > & items )

float

cv::calcBlurriness(const Mat & frame)

void

cv::calcFlowMask(
const Mat & flowX,
const Mat & flowY,
const Mat & errors,
float maxError,
const Mat & mask0,
const Mat & mask1,
Mat & flowMask )

void

cv::completeFrameAccordingToFlow(
const Mat & flowMask,
const Mat & flowX,
const Mat & flowY,
const Mat & frame1,
const Mat & mask1,
float distThresh,
Mat & frame0,
Mat & mask0 )

Function Documentation#

at()#

template<typename T>
const T & cv::videostab::at(
int idx,
const std::vector< T > & items )

#include <opencv2/videostab/ring_buffer.hpp>

Here is the call graph for this function:

cv::videostab::at Node1 cv::videostab::at Node2 cv::borderInterpolate Node1->Node2

cv::videostab::at Node1 cv::videostab::at Node2 cv::borderInterpolate Node1->Node2

at()#

template<typename T>
T & cv::videostab::at(
int idx,
std::vector< T > & items )

#include <opencv2/videostab/ring_buffer.hpp>

Here is the call graph for this function:

cv::videostab::at Node1 cv::videostab::at Node2 cv::borderInterpolate Node1->Node2

cv::videostab::at Node1 cv::videostab::at Node2 cv::borderInterpolate Node1->Node2

calcBlurriness()#

float cv::videostab::calcBlurriness(const Mat & frame)

#include <opencv2/videostab/deblurring.hpp>

calcFlowMask()#

void cv::videostab::calcFlowMask(
const Mat & flowX,
const Mat & flowY,
const Mat & errors,
float maxError,
const Mat & mask0,
const Mat & mask1,
Mat & flowMask )

#include <opencv2/videostab/inpainting.hpp>

completeFrameAccordingToFlow()#

void cv::videostab::completeFrameAccordingToFlow(
const Mat & flowMask,
const Mat & flowX,
const Mat & flowY,
const Mat & frame1,
const Mat & mask1,
float distThresh,
Mat & frame0,
Mat & mask0 )

#include <opencv2/videostab/inpainting.hpp>