Gaussian Filter
#include "dip_linear.h"
dip_Error dip_Gauss ( in, out, boundary, process, sigmas, order, truncation )
binary, integer, float
Finite impulse response implementation of a Gaussian convolution filter and Gaussian derivative convolution filters.
The Gaussian kernel is cut off at truncation times the sigma of the filter (in each dimension). The sum of the Gaussian's coefficients is normalised to one. A truncation of zero or less indicates that the global preferred truncation ought to be used, see GlobalGaussianTruncationGet. For the derivatives, the truncation value is increased slightly: the actual value for truncation used is truncation + 0.5*order. The minimum filter size is 3 pixels, or 5 pixels for the 3rd order derivative.
Both the process and the order parameter may be zero. If process is zero all dimensions are processed. If order is zero no derivatives are taken.
Data type | Name | Description |
dip_Image | in | Input |
dip_Image | out | Output |
dip_BoundaryArray | boundary | Boundary conditions |
dip_BooleanArray | process (0) | Dimensions to process |
dip_FloatArray | sigmas | Sigma of Gaussian |
dip_IntegerArray | order (0) | Order of Derivative along each dimension |
dip_float | truncation | Truncation of Gaussian |
The order of the derivative is limited to the interval 0-3. Sigmas considerably smaller than 1.0 will yield nonsensical results.
See sections 9.4, "Smoothing operations", and 9.5, "Derivative-based operations", in Fundamentals of Image Processing.