MTF
Public Types | Public Member Functions | Public Attributes | Protected Attributes | List of all members
IlluminationModel Class Referenceabstract

Illumination Model is a parametric function that transforms pixel values extracted from a patch to account for illumination changes g(I, a): R(N) x R(K) -> R(N) More...

#include <IlluminationModel.h>

Inheritance diagram for IlluminationModel:
GB PGB RBF

Public Types

enum  PixHessType { Constant, Diagonal, General }
 

Public Member Functions

 IlluminationModel (const ILMParams *ilm_params)
 
virtual int getStateSize () const =0
 
virtual void initialize (double *p)
 
virtual void apply (double *g, const double *I, const double *p)=0
 
virtual void invert (double *inv_p, const double *p)=0
 
virtual void update (double *new_p, const double *old_p, const double *dp)=0
 
virtual void cmptParamJacobian (double *df_dp, const double *df_dg, const double *I, const double *p)=0
 ILM Jacobians.
 
virtual void cmptPixJacobian (double *df_dI, const double *df_dg, const double *I, const double *p)=0
 
virtual void cmptParamHessian (double *d2f_dp2, const double *d2f_dg2, const double *df_dg, const double *I, const double *p)=0
 NULL/nullptr for d2f_dg2 implies that the corresponding matrix is identity; conversely a non negative return imples an identity d2f_dI2 scaled by the return value; these conventions are necessary to avoid unnecessary and very expensive matrix multiplications;. More...
 
virtual void cmptPixHessian (double *d2f_dI2, const double *d2f_dg2, const double *df_dg, const double *I, const double *p)=0
 d2f_dI2 = dg_dI^T*d2f_dg2*dg_dI + df_dg*d2g_dI2
 
virtual void cmptCrossHessian (double *d2f_dp_dI, const double *d2f_dg2, const double *df_dg, const double *I, const double *p)=0
 d2f_dp_dI = dg_dp^T*d2f_dg2*dg_dI + df_dg*d2g_dpdI
 
virtual void cmptParamHessian (double *d2f_dp2, const double *d2f_dg2, const double *I, const double *p)=0
 First order ILM hessians. More...
 
virtual void cmptPixHessian (double *d2f_dI2, const double *d2f_dg2, const double *I, const double *p)=0
 d2f_dI2 = dg_dI^T*d2f_dg2*dg_dI
 
virtual void cmptCrossHessian (double *d2f_dp_dI, const double *d2f_dg2, const double *I, const double *p)=0
 d2f_dp_dI = dg_dp^T*d2f_dg2*dg_dI
 
virtual void setPixHessType (PixHessType _d2f_dg2_type)
 
virtual PixHessType getPixHessType ()=0
 
virtual void parseSamplerSigma (VectorXd &out_sigma, const VectorXd &in_sigma)=0
 
virtual void parseSamplerMean (VectorXd &out_mean, const VectorXd &in_mean)=0
 

Public Attributes

string name
 
bool apply_on_init
 

Protected Attributes

int resx
 
int resy
 
int n_pix
 
PixHessType d2f_dg2_type
 

Detailed Description

Illumination Model is a parametric function that transforms pixel values extracted from a patch to account for illumination changes g(I, a): R(N) x R(K) -> R(N)

Member Function Documentation

virtual void IlluminationModel::cmptParamHessian ( double *  d2f_dp2,
const double *  d2f_dg2,
const double *  df_dg,
const double *  I,
const double *  p 
)
pure virtual

NULL/nullptr for d2f_dg2 implies that the corresponding matrix is identity; conversely a non negative return imples an identity d2f_dI2 scaled by the return value; these conventions are necessary to avoid unnecessary and very expensive matrix multiplications;.

Second order ILM hessiansd2f_dp2 = dg_dp^T*d2f_dg2*dg_dp + df_dg*d2g_dp2

Implemented in PGB, RBF, and GB.

virtual void IlluminationModel::cmptParamHessian ( double *  d2f_dp2,
const double *  d2f_dg2,
const double *  I,
const double *  p 
)
pure virtual

First order ILM hessians.

d2f_dp2 = dg_dp^T*d2f_dg2*dg_dp

Implemented in PGB, RBF, and GB.


The documentation for this class was generated from the following file: