added comments and reference for Chambolle paper

This commit is contained in:
Ernest Galbrun 2014-07-04 15:33:34 +02:00
parent 693c4e5741
commit 4bd55c6f73
2 changed files with 7 additions and 4 deletions

View File

@ -213,7 +213,10 @@ public:
double gamma; double gamma;
/** /**
* parameter for robustness * parameter used for motion estimation. It adds a variable allowing for illumination variations
* Set this parameter to 1. if you have varying illumination.
* See: Chambolle et al, A First-Order Primal-Dual Algorithm for Convex Problems with Applications to Imaging
* Journal of Mathematical imaging and vision, may 2011 Vol 40 issue 1, pp 120-145
*/ */
double theta; double theta;

View File

@ -100,7 +100,7 @@ protected:
double tau; double tau;
double lambda; double lambda;
double theta; double theta;
double gamma; double gamma;
int nscales; int nscales;
int warps; int warps;
double epsilon; double epsilon;
@ -1320,7 +1320,7 @@ void OpticalFlowDual_TVL1::procOneScale(const Mat_<float>& I0, const Mat_<float>
remap(I1, I1w, flowMap1, flowMap2, INTER_CUBIC); remap(I1, I1w, flowMap1, flowMap2, INTER_CUBIC);
remap(I1x, I1wx, flowMap1, flowMap2, INTER_CUBIC); remap(I1x, I1wx, flowMap1, flowMap2, INTER_CUBIC);
remap(I1y, I1wy, flowMap1, flowMap2, INTER_CUBIC); remap(I1y, I1wy, flowMap1, flowMap2, INTER_CUBIC);
//calculate I1(x+u0) and its gradient //calculate I1(x+u0) and its gradient
calcGradRho(I0, I1w, I1wx, I1wy, u1, u2, grad, rho_c); calcGradRho(I0, I1w, I1wx, I1wy, u1, u2, grad, rho_c);
float error = std::numeric_limits<float>::max(); float error = std::numeric_limits<float>::max();
@ -1440,7 +1440,7 @@ CV_INIT_ALGORITHM(OpticalFlowDual_TVL1, "DenseOpticalFlow.DualTVL1",
obj.info()->addParam(obj, "outerIterations", obj.outerIterations, false, 0, 0, obj.info()->addParam(obj, "outerIterations", obj.outerIterations, false, 0, 0,
"outer iterations (number of inner loops) used in the numerical scheme"); "outer iterations (number of inner loops) used in the numerical scheme");
obj.info()->addParam(obj, "gamma", obj.gamma, false, 0, 0, obj.info()->addParam(obj, "gamma", obj.gamma, false, 0, 0,
"coefficient for additional Ali term"); "coefficient for additional illumination variation term");
obj.info()->addParam(obj, "useInitialFlow", obj.useInitialFlow)) obj.info()->addParam(obj, "useInitialFlow", obj.useInitialFlow))
} // namespace } // namespace