Specialization for degree-6 for better performance. Also, this allows us to implement the Jacobian quite easy.
More...
|
| generic_anamorphic_distortion () |
|
double | get_coeff (int i) const |
| Get coefficient as demanded by base class.
|
|
void | set_coeff (int i, double q) |
| Set coefficient as demanded by base class.
|
|
void | prepare () |
| To be invoked by initializeParameters().
|
|
vec2_type | operator() (const vec2_type &p_dn) const |
| As usual, we define the distortion mapping in diagonally normalized coordinates, (hence the suffix _dn). The operator expects, that p_dn is already shifted so that the lens center is (0,0).
|
|
mat2_type | jacobi (const vec2_type &p_dn) const |
| Jacobi-Matrix, tested against difference quotient method in base class. We calculated the Jacobian of the undistort()-function (that is operator()). Note, that this is computed for diagonally normalized coordinates, whereas the plugin class uses unit coordinates (because 3DE4 does so).
|
|
vec2_type | twist (const vec2_type &p_dn) const |
|
int | get_num_parameters () const |
| Number of parameters, that is N.
|
|
void | setup_map_inverse (int n_max_iter, int n_post_iter, double epsilon) |
| Configure iterative procedure for map_inverse(). Call this, if you don't agree with the default values.
|
|
virtual void | done () |
| After changing one or more coefficients of the model, call this (future use). The derived class may prepare some data structure for fast/precise evalutation..
|
|
void | reset_k_max_iter () |
| Reset k_max_iter for debugging purposes.
|
|
int | get_k_iter () const |
| Number of iterations until epsilon was reached. This value is reset at the beginning of each iterative calculation.
|
|
int | get_k_max_iter () const |
| By this value you can check how much iterations per pixel were required to warp an entire image or sequence. Use reset_k_max_iter() to reset to 0.
|
|
int | get_n_max_iter () const |
| User-defined maximum number of iterations applied in map_inverse in order to fulfill the termination condition.
|
|
int | get_n_post_iter () const |
| User-defined number of additional iterations to be applied when the termination condition is fulfilled (which we call post-iterations).
|
|
double | get_diff () const |
| Difference between is-value and should-be-value in map_inverse(). Inverse mapping is implemented as fixed-point problem. map_inverse() terminates, when diff is smaller than epsilon or the number of iterations exceeds n_max_iter.
|
|
vec2_type | eval (const vec2_type &p) const |
| Same as method instead of operator.
|
|
virtual void | derive (double *dg, int n_parameters, const vec2_type &p_dn) const |
| Not all distortion functions will support this.
|
|
virtual vec2_type | map_inverse (const vec2_type &q) const |
| Inverse mapping by solving the fixed point equation without providing initial values. Virtual, because the derived class might use some smart data structure for calculating an initial value.
|
|
vec2_type | map_inverse (const vec2_type &q, const vec2_type &p_start) const |
| For given q, we are looking for p so that f(p) = q. p_start is near to p.
|
|
virtual std::ostream & | out (std::ostream &cout) const |
| The derived class implements a method for printing values inside 3DE4's matrix tool dialog. This functionality is currently not supported by tde4_ld_plugin.
|
|
template<class VEC2, class MAT2>
class ldpk::generic_anamorphic_distortion< VEC2, MAT2, 6 >
Specialization for degree-6 for better performance. Also, this allows us to implement the Jacobian quite easy.