42 #include <visp3/tt/vpTemplateTrackerSSDForwardAdditional.h>
43 #include <visp3/core/vpImageTools.h>
63 unsigned int iteration=0;
69 unsigned int Nbpoint=0;
73 Warp->computeCoeff(
p);
98 double *tempt=
new double[
nbParam];
99 for(
unsigned int it=0;it<
nbParam;it++)
100 tempt[it]=
dW[0][it]*dIWx+
dW[1][it]*dIWy;
102 for(
unsigned int it=0;it<
nbParam;it++)
103 for(
unsigned int jt=0;jt<
nbParam;jt++)
104 H[it][jt]+=tempt[it]*tempt[jt];
107 for(
unsigned int it=0;it<
nbParam;it++)
131 switch(minimizationMethod)
138 double erreur_LMA=-
getCost(I,p_test_LMA);
139 if(erreur_LMA<erreur)
142 lambda=(lambda/10.<1e-6)?lambda/10.:1e-6;
146 lambda=(lambda*10.<1e6)?1e6:lambda*10.;
169 double s_scal_y=s_quasi.
t()*y_quasi;
173 if(std::fabs(s_scal_y) > std::numeric_limits<double>::epsilon())
174 KQuasiNewton=KQuasiNewton+0.001*(s_quasi*s_quasi.
t()/s_scal_y-KQuasiNewton*y_quasi*y_quasi.
t()*KQuasiNewton/(y_quasi.
t()*KQuasiNewton*y_quasi));
unsigned int getWidth() const
vpTemplateTrackerPoint * ptTemplate
virtual void warpX(const int &i, const int &j, double &i2, double &j2, const vpColVector &ParamM)=0
void computeOptimalBrentGain(const vpImage< unsigned char > &I, vpColVector &tp, double tMI, vpColVector &direction, double &alpha)
error that can be emited by ViSP classes.
Type getValue(double i, double j) const
static void getGradYGauss2D(const vpImage< unsigned char > &I, vpImage< double > &dIy, const double *gaussianKernel, const double *gaussianDerivativeKernel, unsigned int size)
static void getGradXGauss2D(const vpImage< unsigned char > &I, vpImage< double > &dIx, const double *gaussianKernel, const double *gaussianDerivativeKernel, unsigned int size)
unsigned int templateSize
unsigned int iterationMax
Error that can be emited by the vpTracker class and its derivates.
unsigned int iterationGlobale
Implementation of column vector and the associated operations.
vpMatrix inverseByLU() const
unsigned int getHeight() const
static void filter(const vpImage< double > &I, vpImage< double > &Iu, vpImage< double > &Iv, const vpMatrix &M, const bool convolve=false)
vpTemplateTrackerWarp * Warp
static void computeHLM(const vpMatrix &H, const double &alpha, vpMatrix &HLM)
virtual void dWarp(const vpColVector &X1, const vpColVector &X2, const vpColVector &ParamM, vpMatrix &dW)=0