44 #ifndef vpTemplateTrackerMIBSpline_hh
45 #define vpTemplateTrackerMIBSpline_hh
47 #include <visp3/core/vpConfig.h>
49 #include <visp3/core/vpImage.h>
50 #include <visp3/core/vpMath.h>
51 #include <visp3/tt/vpTemplateTrackerBSpline.h>
52 #include <visp3/tt/vpTemplateTrackerHeader.h>
54 #include <visp3/tt_mi/vpTemplateTrackerMI.h>
56 #ifndef DOXYGEN_SHOULD_SKIP_THIS
58 class VISP_EXPORT vpTemplateTrackerMIBSpline
61 static void PutPVBsplineD(
double *Prt,
int cr,
double er,
int ct,
double et,
int Nc,
double val,
const int °re);
62 static void PutPVBsplineD3(
double *Prt,
int cr,
double er,
int ct,
double et,
int Nc,
double val);
63 static void PutPVBsplineD4(
double *Prt,
int cr,
double er,
int ct,
double et,
int Nc,
double val);
65 static void PutTotPVBspline(
double *Prt,
int cr,
double &er,
int ct,
double &et,
int Nc,
double *val,
66 unsigned int &NbParam,
int °ree);
67 static void PutTotPVBspline(
double *Prt,
double *dPrt,
double *d2Prt,
int cr,
double &er,
int ct,
double &et,
int Ncb,
68 double *val,
unsigned int &NbParam,
int °ree);
69 static void PutTotPVBspline3(
double *Prt,
int cr,
double &er,
int ct,
double &et,
int Nc,
double *val,
70 unsigned int &NbParam);
71 static void PutTotPVBspline3(
double *Prt,
double *dPrt,
double *d2Prt,
int cr,
double &er,
int ct,
double &et,
72 int Ncb,
double *val,
unsigned int &NbParam);
73 static void PutTotPVBspline4(
double *Prt,
int cr,
double er,
int ct,
double et,
int Nc,
double *val,
74 unsigned int &NbParam);
75 static void PutTotPVBspline4(
double *Prt,
double *dPrt,
double *d2Prt,
int cr,
double er,
int ct,
double et,
int Ncb,
76 double *val,
unsigned int &NbParam);
79 static void PutTotPVBspline3(
double *Prt,
double &er,
double *et,
unsigned int NbParam);
80 static void PutTotPVBspline4(
double *Prt,
double &er,
double *et,
unsigned int NbParam);
83 static void PutTotPVBsplineNoSecond(
double *Prt,
int &cr,
double &er,
int &ct,
double &et,
int &Nc,
double *val,
84 unsigned int &NbParam,
int °ree);
85 static void PutTotPVBsplineNoSecond(
double *Prt,
double *dPrt,
int &cr,
double &er,
int &ct,
double &et,
int &Ncb,
86 double *val,
unsigned int &NbParam,
int °ree);
87 static void PutTotPVBspline3NoSecond(
double *Prt,
int &cr,
double &er,
int &ct,
double &et,
int &Nc,
double *val,
88 unsigned int &NbParam);
89 static void PutTotPVBspline3NoSecond(
double *Prt,
double *dPrt,
int &cr,
double &er,
int &ct,
double &et,
int &Ncb,
90 double *val,
unsigned int &NbParam);
91 static void PutTotPVBspline4NoSecond(
double *Prt,
int &cr,
double &er,
int &ct,
double &et,
int &Nc,
double *val,
92 unsigned int &NbParam);
93 static void PutTotPVBspline4NoSecond(
double *Prt,
double *dPrt,
int &cr,
double &er,
int &ct,
double &et,
int &Ncb,
94 double *val,
unsigned int &NbParam);
96 static void PutTotPVBsplinePrtTout(
double *Prt,
int &cr,
double &er,
int &ct,
double &et,
int &Nc,
97 unsigned int &NbParam,
int °ree);
98 static void PutTotPVBspline3PrtTout(
double *Prt,
int &cr,
double &er,
int &ct,
double &et,
int &Nc,
99 unsigned int &NbParam);
100 static void PutTotPVBspline4PrtTout(
double *Prt,
int &cr,
double &er,
int &ct,
double &et,
int &Nc,
101 unsigned int &NbParam);
103 static void PutTotPVBsplinePrt(
double *Prt,
int &cr,
double &er,
int &ct,
double &et,
int &Ncb,
unsigned int &NbParam,
105 static void PutTotPVBspline3Prt(
double *Prt,
int &cr,
double &er,
int &ct,
double &et,
int &Ncb);
106 static void PutTotPVBspline4Prt(
double *Prt,
int &cr,
double &er,
int &ct,
double &et,
int &Ncb);
108 static double Bspline3(
double diff);
109 static double Bspline4i(
double diff,
int &interv);
111 static double dBspline3(
double diff);
112 static double dBspline4(
double diff);
114 static double d2Bspline3(
double diff);
115 static double d2Bspline4(
double diff);
117 static void computeProbabilities(
double *Prt,
int &cr,
double &er,
int &ct,
double &et,
int &Nc,
double *dW,
118 unsigned int &NbParam,
int &bspline,
vpHessienApproximationType