Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions modules/video/include/opencv2/video/tracking.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -564,6 +564,12 @@ class CV_EXPORTS_W VariationalRefinement : public DenseOpticalFlow
/** @copybrief getGamma @see getGamma */
CV_WRAP virtual void setGamma(float val) = 0;

/** @brief Norm value shift for robust penalizer
@see setEpsilon */
CV_WRAP virtual float getEpsilon() const = 0;
/** @copybrief getEpsilon @see getEpsilon */
CV_WRAP virtual void setEpsilon(float val) = 0;

/** @brief Creates an instance of VariationalRefinement
*/
CV_WRAP static Ptr<VariationalRefinement> create();
Expand Down Expand Up @@ -645,6 +651,12 @@ class CV_EXPORTS_W DISOpticalFlow : public DenseOpticalFlow
/** @copybrief getVariationalRefinementGamma @see getVariationalRefinementGamma */
CV_WRAP virtual void setVariationalRefinementGamma(float val) = 0;

/** @brief Norm value shift for robust penalizer
@see setVariationalRefinementEpsilon */
CV_WRAP virtual float getVariationalRefinementEpsilon() const = 0;
/** @copybrief getVariationalRefinementEpsilon @see getVariationalRefinementEpsilon */
CV_WRAP virtual void setVariationalRefinementEpsilon(float val) = 0;


/** @brief Whether to use mean-normalization of patches when computing patch distance. It is turned on
by default as it typically provides a noticeable quality boost because of increased robustness to
Expand Down
6 changes: 6 additions & 0 deletions modules/video/src/dis_flow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ class DISOpticalFlowImpl CV_FINAL : public DISOpticalFlow
float variational_refinement_alpha;
float variational_refinement_gamma;
float variational_refinement_delta;
float variational_refinement_epsilon;
bool use_mean_normalization;
bool use_spatial_propagation;

Expand All @@ -92,6 +93,8 @@ class DISOpticalFlowImpl CV_FINAL : public DISOpticalFlow
void setVariationalRefinementDelta(float val) CV_OVERRIDE { variational_refinement_delta = val; }
float getVariationalRefinementGamma() const CV_OVERRIDE { return variational_refinement_gamma; }
void setVariationalRefinementGamma(float val) CV_OVERRIDE { variational_refinement_gamma = val; }
float getVariationalRefinementEpsilon() const CV_OVERRIDE { return variational_refinement_epsilon; }
void setVariationalRefinementEpsilon(float val) CV_OVERRIDE { variational_refinement_epsilon = val; }

bool getUseMeanNormalization() const CV_OVERRIDE { return use_mean_normalization; }
void setUseMeanNormalization(bool val) CV_OVERRIDE { use_mean_normalization = val; }
Expand Down Expand Up @@ -219,6 +222,7 @@ DISOpticalFlowImpl::DISOpticalFlowImpl()
variational_refinement_alpha = 20.f;
variational_refinement_gamma = 10.f;
variational_refinement_delta = 5.f;
variational_refinement_epsilon = 0.01f;

border_size = 16;
use_mean_normalization = true;
Expand Down Expand Up @@ -306,6 +310,7 @@ void DISOpticalFlowImpl::prepareBuffers(Mat &I0, Mat &I1, Mat &flow, bool use_fl
variational_refinement_processors[i]->setAlpha(variational_refinement_alpha);
variational_refinement_processors[i]->setDelta(variational_refinement_delta);
variational_refinement_processors[i]->setGamma(variational_refinement_gamma);
variational_refinement_processors[i]->setEpsilon(variational_refinement_epsilon);
variational_refinement_processors[i]->setSorIterations(5);
variational_refinement_processors[i]->setFixedPointIterations(variational_refinement_iter);

Expand Down Expand Up @@ -1274,6 +1279,7 @@ void DISOpticalFlowImpl::ocl_prepareBuffers(UMat &I0, UMat &I1, InputArray flow,
variational_refinement_processors[i]->setAlpha(variational_refinement_alpha);
variational_refinement_processors[i]->setDelta(variational_refinement_delta);
variational_refinement_processors[i]->setGamma(variational_refinement_gamma);
variational_refinement_processors[i]->setEpsilon(variational_refinement_epsilon);
variational_refinement_processors[i]->setSorIterations(5);
variational_refinement_processors[i]->setFixedPointIterations(variational_refinement_iter);

Expand Down
2 changes: 2 additions & 0 deletions modules/video/src/variational_refinement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ class VariationalRefinementImpl CV_FINAL : public VariationalRefinement
void setDelta(float val) CV_OVERRIDE { delta = val; }
float getGamma() const CV_OVERRIDE { return gamma; }
void setGamma(float val) CV_OVERRIDE { gamma = val; }
float getEpsilon() const CV_OVERRIDE { return epsilon; }
void setEpsilon(float val) CV_OVERRIDE { epsilon = val; }

protected: //!< internal buffers
/* This struct defines a special data layout for Mat_<float>. Original buffer is split into two: one for "red"
Expand Down