4 #define PGB_ADDITIVE_UPDATE 0 5 #define PGB_N_REGIONS 3 7 #include "IlluminationModel.h" 16 int _n_regions_x,
int _n_regions_y);
24 PGB(
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);
55 const double *df_dg,
const double *I,
const double *p)
override{
56 cmptCrossHessian(d2f_dp_dI, d2f_dg2, df_dg, I, p);
59 PixHessType getPixHessType()
override;
60 void parseSamplerSigma(VectorXd &out_sigma,
const VectorXd &in_sigma)
override;
61 void parseSamplerMean(VectorXd &out_mean,
const VectorXd &in_mean)
override;
67 int region_size_x, region_size_y;
69 MatrixX2i region_bounds_x, region_bounds_y;
70 MatrixX4i region_bounds;
73 void showSubRegions(
double *img_data);
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: PGB.h:50
Definition: IlluminationModel.h:12
Illumination Model is a parametric function that transforms pixel values extracted from a patch to ac...
Definition: IlluminationModel.h:30
Piecewise Gain and Bias illumination model.
Definition: PGB.h:21
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: PGB.h:46
PGBParams(ILMParams *ilm_params, bool _additive_update, int _n_regions_x, int _n_regions_y)
value constructor
int n_regions_x
no. of sub regions in horizontal and vertical directions
Definition: PGB.h:13
void cmptCrossHessian(double *d2f_dp_dI, const double *d2f_dg2, const double *df_dg, const double *I, const double *p) override
d2f_dp_dI = dg_dp^T*d2f_dg2*dg_dI + df_dg*d2g_dpdI
Definition: PGB.h:54