Video Stabilization
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 [56] and [34]. However, there are some extensions and deviations from the original paper methods.
References
- “Full-Frame Video Stabilization with Motion Inpainting” Yasuyuki Matsushita, Eyal Ofek, Weina Ge, Xiaoou Tang, Senior Member, and Heung-Yeung Shum
- “Auto-Directed Video Stabilization with Robust L1 Optimal Camera Paths” Matthias Grundmann, Vivek Kwatra, Irfan Essa
// classes class cv::videostab::ColorAverageInpainter; class cv::videostab::ColorInpainter; class cv::videostab::ConsistentMosaicInpainter; class cv::videostab::DeblurerBase; class cv::videostab::IDenseOptFlowEstimator; class cv::videostab::IFrameSource; class cv::videostab::ILog; class cv::videostab::IOutlierRejector; class cv::videostab::ISparseOptFlowEstimator; class cv::videostab::InpainterBase; class cv::videostab::InpaintingPipeline; class cv::videostab::LogToStdout; class cv::videostab::MoreAccurateMotionWobbleSuppressor; class cv::videostab::MoreAccurateMotionWobbleSuppressorBase; class cv::videostab::MotionInpainter; class cv::videostab::NullDeblurer; class cv::videostab::NullFrameSource; class cv::videostab::NullInpainter; class cv::videostab::NullLog; class cv::videostab::NullOutlierRejector; class cv::videostab::NullWobbleSuppressor; class cv::videostab::OnePassStabilizer; class cv::videostab::PyrLkOptFlowEstimatorBase; class cv::videostab::SparsePyrLkOptFlowEstimator; class cv::videostab::StabilizerBase; class cv::videostab::TranslationBasedLocalOutlierRejector; class cv::videostab::TwoPassStabilizer; class cv::videostab::VideoFileSource; class cv::videostab::WeightingDeblurer; class cv::videostab::WobbleSuppressorBase; // global functions template <typename T> T& cv::videostab::at( int idx, std::vector<T>& items ); template <typename T> const T& cv::videostab::at( int idx, const std::vector<T>& items ); float cv::videostab::calcBlurriness(const Mat& frame); void cv::videostab::calcFlowMask( const Mat& flowX, const Mat& flowY, const Mat& errors, float maxError, const Mat& mask0, const Mat& mask1, Mat& flowMask ); 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 );