For convenience, both parameters are supplied as squares, since the underlying functions are almost always specified in terms of the squares.
The matrix routine will evaluate one of these functions (or another you supply with the same parameter list and semantics) at discrete values over a certain range, and return the result as a matrix.
A similar set of PlanarFunctions could also be provided, taking two half-width parameters and two position parameters.
Functions | |
template<class T> T | Constant (T, T) |
Returns a constant value regardless of radius. | |
template<class T> T | Random (T, T) |
Returns a uniformly-random value in the range [0,1.0) regardless of radius. | |
template<class T> T | Gaussian (T x_sq, T sig_sq) |
Returns the value of a Gaussian at the given radius. | |
template<class T> T | LoG (T x_sq, T sig_sq) |
Returns the Laplacian of a Gaussian, which is an operator from cite{marr:vision} and, in turn, from cite{marr:prslb80}. | |
template<class matrix_type, class radial_function, class radius_type> matrix_type | matrix (radial_function radial_fn, radius_type radius, radius_type max_radius_, string &errors, bool circular=true, bool normalize=true) |
Generates a square matrix of values given a function, params, and bounds. |
|
Returns the Laplacian of a Gaussian, which is an operator from cite{marr:vision} and, in turn, from cite{marr:prslb80}. It does not currently have the intended effect, perhaps because of normalization. Definition at line 55 of file radialfunction.h. |
|
Generates a square matrix of values given a function, params, and bounds. The size of the matrix is guaranteed to be at least 1x1, which for a normalized matrix with max_radius==0 will be the identity function for convolution. Definition at line 67 of file radialfunction.h. Referenced by WeightSet< MatrixT, BoundsT, MapBaseType, MapType >::WeightSet(). |