mirror of
https://github.com/opencv/opencv.git
synced 2025-01-18 06:03:15 +08:00
Boring changes - videostab.
This commit is contained in:
parent
808e0cf10b
commit
0dcb4f1f66
@ -111,10 +111,10 @@ VideoFileSource::VideoFileSource(const String &path, bool volatileFrame)
|
||||
void VideoFileSource::reset() { impl->reset(); }
|
||||
Mat VideoFileSource::nextFrame() { return impl->nextFrame(); }
|
||||
|
||||
int VideoFileSource::width() { return ((VideoFileSourceImpl*)impl.obj)->width(); }
|
||||
int VideoFileSource::height() { return ((VideoFileSourceImpl*)impl.obj)->height(); }
|
||||
int VideoFileSource::count() { return ((VideoFileSourceImpl*)impl.obj)->count(); }
|
||||
double VideoFileSource::fps() { return ((VideoFileSourceImpl*)impl.obj)->fps(); }
|
||||
int VideoFileSource::width() { return ((VideoFileSourceImpl*)impl.get())->width(); }
|
||||
int VideoFileSource::height() { return ((VideoFileSourceImpl*)impl.get())->height(); }
|
||||
int VideoFileSource::count() { return ((VideoFileSourceImpl*)impl.get())->count(); }
|
||||
double VideoFileSource::fps() { return ((VideoFileSourceImpl*)impl.get())->fps(); }
|
||||
|
||||
} // namespace videostab
|
||||
} // namespace cv
|
||||
|
@ -671,9 +671,9 @@ Mat ToFileMotionWriter::estimate(const Mat &frame0, const Mat &frame1, bool *ok)
|
||||
KeypointBasedMotionEstimator::KeypointBasedMotionEstimator(Ptr<MotionEstimatorBase> estimator)
|
||||
: ImageMotionEstimatorBase(estimator->motionModel()), motionEstimator_(estimator)
|
||||
{
|
||||
setDetector(new GoodFeaturesToTrackDetector());
|
||||
setOpticalFlowEstimator(new SparsePyrLkOptFlowEstimator());
|
||||
setOutlierRejector(new NullOutlierRejector());
|
||||
setDetector(makePtr<GoodFeaturesToTrackDetector>());
|
||||
setOpticalFlowEstimator(makePtr<SparsePyrLkOptFlowEstimator>());
|
||||
setOutlierRejector(makePtr<NullOutlierRejector>());
|
||||
}
|
||||
|
||||
|
||||
@ -708,7 +708,7 @@ Mat KeypointBasedMotionEstimator::estimate(const Mat &frame0, const Mat &frame1,
|
||||
|
||||
// perform outlier rejection
|
||||
|
||||
IOutlierRejector *outlRejector = static_cast<IOutlierRejector*>(outlierRejector_);
|
||||
IOutlierRejector *outlRejector = outlierRejector_.get();
|
||||
if (!dynamic_cast<NullOutlierRejector*>(outlRejector))
|
||||
{
|
||||
pointsPrev_.swap(pointsPrevGood_);
|
||||
@ -745,7 +745,7 @@ KeypointBasedMotionEstimatorGpu::KeypointBasedMotionEstimatorGpu(Ptr<MotionEstim
|
||||
detector_ = gpu::createGoodFeaturesToTrackDetector(CV_8UC1);
|
||||
|
||||
CV_Assert(gpu::getCudaEnabledDeviceCount() > 0);
|
||||
setOutlierRejector(new NullOutlierRejector());
|
||||
setOutlierRejector(makePtr<NullOutlierRejector>());
|
||||
}
|
||||
|
||||
|
||||
@ -784,7 +784,7 @@ Mat KeypointBasedMotionEstimatorGpu::estimate(const gpu::GpuMat &frame0, const g
|
||||
|
||||
// perform outlier rejection
|
||||
|
||||
IOutlierRejector *rejector = static_cast<IOutlierRejector*>(outlierRejector_);
|
||||
IOutlierRejector *rejector = outlierRejector_.get();
|
||||
if (!dynamic_cast<NullOutlierRejector*>(rejector))
|
||||
{
|
||||
outlierRejector_->process(frame0.size(), hostPointsPrev_, hostPoints_, rejectionStatus_);
|
||||
|
@ -324,7 +324,7 @@ public:
|
||||
MotionInpainter::MotionInpainter()
|
||||
{
|
||||
#ifdef HAVE_OPENCV_GPUOPTFLOW
|
||||
setOptFlowEstimator(new DensePyrLkOptFlowEstimatorGpu());
|
||||
setOptFlowEstimator(makePtr<DensePyrLkOptFlowEstimatorGpu>());
|
||||
#else
|
||||
CV_Error(Error::StsNotImplemented, "Current implementation of MotionInpainter requires GPU");
|
||||
#endif
|
||||
|
@ -532,9 +532,9 @@ void LpMotionStabilizer::stabilize(
|
||||
model.scaling(1);
|
||||
|
||||
ClpPresolve presolveInfo;
|
||||
Ptr<ClpSimplex> presolvedModel = presolveInfo.presolvedModel(model);
|
||||
Ptr<ClpSimplex> presolvedModel(presolveInfo.presolvedModel(model));
|
||||
|
||||
if (!presolvedModel.empty())
|
||||
if (presolvedModel)
|
||||
{
|
||||
presolvedModel->dual();
|
||||
presolveInfo.postsolve(true);
|
||||
|
@ -54,11 +54,11 @@ namespace videostab
|
||||
|
||||
StabilizerBase::StabilizerBase()
|
||||
{
|
||||
setLog(new LogToStdout());
|
||||
setFrameSource(new NullFrameSource());
|
||||
setMotionEstimator(new KeypointBasedMotionEstimator(new MotionEstimatorRansacL2()));
|
||||
setDeblurer(new NullDeblurer());
|
||||
setInpainter(new NullInpainter());
|
||||
setLog(makePtr<LogToStdout>());
|
||||
setFrameSource(makePtr<NullFrameSource>());
|
||||
setMotionEstimator(makePtr<KeypointBasedMotionEstimator>(makePtr<MotionEstimatorRansacL2>()));
|
||||
setDeblurer(makePtr<NullDeblurer>());
|
||||
setInpainter(makePtr<NullInpainter>());
|
||||
setRadius(15);
|
||||
setTrimRatio(0);
|
||||
setCorrectionForInclusion(false);
|
||||
@ -156,7 +156,7 @@ bool StabilizerBase::doOneIteration()
|
||||
|
||||
void StabilizerBase::setUp(const Mat &firstFrame)
|
||||
{
|
||||
InpainterBase *inpaint = static_cast<InpainterBase*>(inpainter_);
|
||||
InpainterBase *inpaint = inpainter_.get();
|
||||
doInpainting_ = dynamic_cast<NullInpainter*>(inpaint) == 0;
|
||||
if (doInpainting_)
|
||||
{
|
||||
@ -167,7 +167,7 @@ void StabilizerBase::setUp(const Mat &firstFrame)
|
||||
inpainter_->setStabilizationMotions(stabilizationMotions_);
|
||||
}
|
||||
|
||||
DeblurerBase *deblurer = static_cast<DeblurerBase*>(deblurer_);
|
||||
DeblurerBase *deblurer = deblurer_.get();
|
||||
doDeblurring_ = dynamic_cast<NullDeblurer*>(deblurer) == 0;
|
||||
if (doDeblurring_)
|
||||
{
|
||||
@ -252,7 +252,7 @@ void StabilizerBase::logProcessingTime()
|
||||
|
||||
OnePassStabilizer::OnePassStabilizer()
|
||||
{
|
||||
setMotionFilter(new GaussianMotionFilter());
|
||||
setMotionFilter(makePtr<GaussianMotionFilter>());
|
||||
reset();
|
||||
}
|
||||
|
||||
@ -308,8 +308,8 @@ Mat OnePassStabilizer::postProcessFrame(const Mat &frame)
|
||||
|
||||
TwoPassStabilizer::TwoPassStabilizer()
|
||||
{
|
||||
setMotionStabilizer(new GaussianMotionFilter());
|
||||
setWobbleSuppressor(new NullWobbleSuppressor());
|
||||
setMotionStabilizer(makePtr<GaussianMotionFilter>());
|
||||
setWobbleSuppressor(makePtr<NullWobbleSuppressor>());
|
||||
setEstimateTrimRatio(false);
|
||||
reset();
|
||||
}
|
||||
@ -371,7 +371,7 @@ void TwoPassStabilizer::runPrePassIfNecessary()
|
||||
{
|
||||
// check if we must do wobble suppression
|
||||
|
||||
WobbleSuppressorBase *wobble = static_cast<WobbleSuppressorBase*>(wobbleSuppressor_);
|
||||
WobbleSuppressorBase *wobble = wobbleSuppressor_.get();
|
||||
doWobbleSuppression_ = dynamic_cast<NullWobbleSuppressor*>(wobble) == 0;
|
||||
|
||||
// estimate motions
|
||||
@ -469,7 +469,7 @@ void TwoPassStabilizer::setUp(const Mat &firstFrame)
|
||||
for (int i = -radius_; i <= 0; ++i)
|
||||
at(i, frames_) = firstFrame;
|
||||
|
||||
WobbleSuppressorBase *wobble = static_cast<WobbleSuppressorBase*>(wobbleSuppressor_);
|
||||
WobbleSuppressorBase *wobble = wobbleSuppressor_.get();
|
||||
doWobbleSuppression_ = dynamic_cast<NullWobbleSuppressor*>(wobble) == 0;
|
||||
if (doWobbleSuppression_)
|
||||
{
|
||||
|
@ -60,7 +60,7 @@ namespace videostab
|
||||
|
||||
WobbleSuppressorBase::WobbleSuppressorBase() : motions_(0), stabilizationMotions_(0)
|
||||
{
|
||||
setMotionEstimator(new KeypointBasedMotionEstimator(new MotionEstimatorRansacL2(MM_HOMOGRAPHY)));
|
||||
setMotionEstimator(makePtr<KeypointBasedMotionEstimator>(makePtr<MotionEstimatorRansacL2>(MM_HOMOGRAPHY)));
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user