4 #define GB_ADDITIVE_UPDATE 0 6 #include "IlluminationModel.h" 20 GB(
const ParamType *_gb_params =
nullptr);
22 void initialize(
double *p)
override{
25 int getStateSize()
const override{
return 2; };
26 void apply(
double *g,
const double *I,
const double *p)
override;
27 void invert(
double *inv_p,
const double *p)
override;
28 void update(
double *new_p,
const double *old_p,
const double *dp)
override;
30 void cmptParamJacobian(
double *df_dp,
const double *df_dg,
31 const double *I,
const double *p)
override;
32 void cmptPixJacobian(
double *df_dI,
const double *df_dg,
33 const double *I,
const double *p)
override;
35 void cmptParamHessian(
double *d2f_dp2,
const double *d2f_dg2,
36 const double *I,
const double *p)
override;
37 void cmptPixHessian(
double *d2f_dI2,
const double *d2f_dg2,
38 const double *I,
const double *p)
override;
39 void cmptCrossHessian(
double *d2f_dp_dI,
const double *d2f_dg2,
40 const double *I,
const double *p)
override;
43 const double *df_dg,
const double *I,
const double *p)
override{
44 cmptParamHessian(d2f_dp2, d2f_dg2, I, p);
47 const double *df_dg,
const double *I,
const double *p)
override{
48 cmptPixHessian(d2f_dI2, d2f_dg2, I, p);
50 void cmptCrossHessian(
double *d2f_dp_dI,
const double *d2f_dg2,
51 const double *df_dg,
const double *I,
const double *p)
override;
53 PixHessType getPixHessType()
override {
return d2f_dg2_type; }
54 void parseSamplerSigma(VectorXd &out_sigma,
const VectorXd &in_sigma)
override;
55 void parseSamplerMean(VectorXd &out_mean,
const VectorXd &in_mean)
override;
Definition: IlluminationModel.h:12
Illumination Model is a parametric function that transforms pixel values extracted from a patch to ac...
Definition: IlluminationModel.h:30
void cmptParamHessian(double *d2f_dp2, const double *d2f_dg2, const double *df_dg, const double *I, const double *p) override
NULL/nullptr for d2f_dg2 implies that the corresponding matrix is identity; conversely a non negative...
Definition: GB.h:42
void cmptPixHessian(double *d2f_dI2, const double *d2f_dg2, const double *df_dg, const double *I, const double *p) override
d2f_dI2 = dg_dI^T*d2f_dg2*dg_dI + df_dg*d2g_dI2
Definition: GB.h:46
GBParams(ILMParams *ilm_params, bool _additive_update)
value constructor