4 #define RBF_ADDITIVE_UPDATE 0 5 #define RBF_N_CTRL_PTS 3 7 #include "IlluminationModel.h" 16 int _n_ctrl_pts_x,
int _n_ctrl_pts_y);
24 RBF(
const ParamType *_pgb_params =
nullptr);
26 void initialize(
double *p)
override{
27 Map<VectorXd>(p, state_size).fill(0);
29 int getStateSize()
const override{
return state_size; };
30 void apply(
double *g,
const double *I,
const double *p)
override;
31 void invert(
double *inv_p,
const double *p)
override;
32 void update(
double *new_p,
const double *old_p,
const double *dp)
override;
34 void cmptParamJacobian(
double *df_dp,
const double *df_dg,
35 const double *I,
const double *p)
override;
36 void cmptPixJacobian(
double *df_dI,
const double *df_dg,
37 const double *I,
const double *p)
override;
39 void cmptParamHessian(
double *d2f_dp2,
const double *d2f_dg2,
40 const double *I,
const double *p)
override;
41 void cmptPixHessian(
double *d2f_dI2,
const double *d2f_dg2,
42 const double *I,
const double *p)
override;
43 void cmptCrossHessian(
double *d2f_dp_dI,
const double *d2f_dg2,
44 const double *I,
const double *p)
override;
47 const double *df_dg,
const double *I,
const double *p)
override{
48 cmptParamHessian(d2f_dp2, d2f_dg2, I, p);
51 const double *df_dg,
const double *I,
const double *p)
override{
52 cmptPixHessian(d2f_dI2, d2f_dg2, I, p);
54 void cmptCrossHessian(
double *d2f_dp_dI,
const double *d2f_dg2,
55 const double *df_dg,
const double *I,
const double *p)
override;
57 PixHessType getPixHessType()
override;
58 void parseSamplerSigma(VectorXd &out_sigma,
const VectorXd &in_sigma)
override;
59 void parseSamplerMean(VectorXd &out_mean,
const VectorXd &in_mean)
override;
64 int region_size_x, region_size_y;
66 MatrixX2i region_bounds_x, region_bounds_y;
67 MatrixXi ctrl_pts_idx;
int n_ctrl_pts_x
no. of sub regions in horizontal and vertical directions
Definition: RBF.h:13
Definition: IlluminationModel.h:12
Illumination Model is a parametric function that transforms pixel values extracted from a patch to ac...
Definition: IlluminationModel.h:30
RBFParams(ILMParams *ilm_params, bool _additive_update, int _n_ctrl_pts_x, int _n_ctrl_pts_y)
value constructor
Radial Basis Function illumination model.
Definition: RBF.h:21
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: RBF.h:50
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: RBF.h:46