Derivative filter
#include "dip_derivatives.h"
dip_Error dip_Derivative ( in, out, boundary, ps, sigmas, order, truncation, flavour )
Depends on the underlying implementation, but expect:
binary, integer, float
This function provides a common interface to different families of regularised derivative operators. Which family is used, is specified by the flavour parameter. The order of the derivative operator along each of the cartesian axes may be specified independently.
Be sure to read the documentation on the underlying implementation to learn about the properties and limitations of the various families.
For the Gaussian family of filters, sigmas must be given, but order can be 0 (only smooth, don't take the derivative).
For the finite difference filter, sigmas can be 0, in which case the non-derivative dimensions will not be processed. Any element of sigmas that is non-zero where the corresponding order is zero, indicates a dimension that will be smoothed. Note it's possible to reporduce the SobelGradient filter this way.
Data type | Name | Description |
dip_Image | in | Input |
dip_Image | out | Output |
dip_BoundaryArray | bc | Boundary conditions |
dip_BooleanArray | ps (0) | Dimensions to process |
dip_FloatArray | sigmas | Sigma of Gaussian |
dip_int | order (0) | Derivative order |
dip_float | truncation | Truncation, see GlobalGaussianTruncationGet |
dip_DerivativeFlavour | flavour | Derivative filter flavour |
The enumerator flavour parameter is one of:
Name | Description |
DIP_DF_DEFAULT | Default derivative flavour (==DIP_DF_FIRGAUSS) |
DIP_DF_FIRGAUSS | Gaussian family, FIR implementation, Gauss |
DIP_DF_IIRGAUSS | Gaussian family, IIR implementation, GaussIIR |
DIP_DF_FTGAUSS | Gaussian family, FT implementation, GaussFT |
DIP_DF_FINITEDIFF | Finite difference implementation, FiniteDifferenceEx |
See section 9.5, "Derivative-based operations", in Fundamentals of Image Processing.
Gauss, GaussFT, GaussIIR, FiniteDifferenceEx, GradientMagnitude, GradientDirection2D, Laplace, SobelGradient