39 #ifndef vpTemplateTrackerMI_hh
40 #define vpTemplateTrackerMI_hh
42 #include <visp3/core/vpConfig.h>
44 #include <visp3/tt/vpTemplateTracker.h>
45 #include <visp3/tt/vpTemplateTrackerHeader.h>
46 #include <visp3/core/vpImageFilter.h>
57 HESSIAN_NONSECOND = -1,
63 } vpHessienApproximationType;
74 BSPLINE_THIRD_ORDER = 3,
75 BSPLINE_FOURTH_ORDER = 4
115 void computeGradient();
117 void computeHessienNormalized(
vpMatrix &H);
118 void computeMI(
double &MI);
119 void computeProba(
int &nbpoint);
126 void zeroProbabilities();
149 :
vpTemplateTracker(), hessianComputation(USE_HESSIEN_NORMAL), ApproxHessian(HESSIAN_0), lambda(0),
150 temp(NULL), Prt(NULL), dPrt(NULL), Pt(NULL), Pr(NULL), d2Prt(NULL), PrtTout(NULL),
151 dprtemp(NULL), PrtD(NULL), dPrtD(NULL), influBspline(0), bspline(0), Nc(0), Ncb(0),
152 d2Ix(), d2Iy(), d2Ixy(), MI_preEstimation(0), MI_postEstimation(0),
153 NMI_preEstimation(0), NMI_postEstimation(0), covarianceMatrix(), computeCovariance(false)
158 double getMI()
const {
return MI_postEstimation;}
161 double getNMI()
const {
return NMI_postEstimation;}
166 void setBspline(
const vpBsplineType &newbs);
168 void setNc(
int newNc);
vpTemplateTrackerMI()
Default constructor.
Implementation of a matrix and operations on matrices.
double NMI_postEstimation
void setLambda(double _l)
vpMatrix covarianceMatrix
void setApprocHessian(vpHessienApproximationType approx)
vpHessienApproximationType ApproxHessian
double getCost(const vpImage< unsigned char > &I)
void setHessianComputation(vpHessienType type)
virtual void initHessienDesired(const vpImage< unsigned char > &I)=0
virtual double getCost(const vpImage< unsigned char > &I, const vpColVector &tp)=0
vpHessienApproximationType
vpMatrix getCovarianceMatrix() const
double getNormalizedCost(const vpImage< unsigned char > &I)
Implementation of column vector and the associated operations.
void setCovarianceComputation(const bool &flag)
virtual void trackNoPyr(const vpImage< unsigned char > &I)=0
vpHessienType hessianComputation