#include <itkDiscreteGaussianDerivativeImageFilter.h>
Calculates image derivatives using discrete derivative gaussian kernels. This filter calculates Gaussian derivative by separable convolution of an image and a discrete Gaussian derivative operator (kernel).
The Gaussian operators used here were described by Tony Lindeberg [67].
The variance or standard deviation (sigma) will be evaluated as pixel units if SetUseImageSpacing is off (false) or as physical units if SetUseImageSpacing is on (true, default). The variance can be set independently in each dimension.
When the Gaussian kernel is small, this filter tends to run faster than itk::RecursiveGaussianImageFilter.
This implementation was taken from the Insight Journal paper: https://doi.org/10.54294/mrg5is
Definition at line 58 of file itkDiscreteGaussianDerivativeImageFilter.h.
Static Public Member Functions | |
static Pointer | New () |
![]() | |
static double | GetGlobalDefaultCoordinateTolerance () |
static double | GetGlobalDefaultDirectionTolerance () |
static void | SetGlobalDefaultCoordinateTolerance (double) |
static void | SetGlobalDefaultDirectionTolerance (double) |
![]() | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool val) |
![]() | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = TOutputImage::ImageDimension |
![]() | |
static constexpr unsigned int | InputImageDimension = TInputImage::ImageDimension |
static constexpr unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
![]() | |
static constexpr unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
Private Attributes | |
unsigned int | m_InternalNumberOfStreamDivisions {} |
ArrayType | m_MaximumError {} |
int | m_MaximumKernelWidth {} |
bool | m_NormalizeAcrossScale {} |
OrderArrayType | m_Order {} |
bool | m_UseImageSpacing {} |
ArrayType | m_Variance {} |
Additional Inherited Members | |
![]() | |
using | InputToOutputRegionCopierType |
using | OutputToInputRegionCopierType |
![]() | |
static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg) |
![]() | |
template<typename TSourceObject> | |
static void | MakeRequiredOutputs (TSourceObject &sourceObject, const DataObjectPointerArraySizeType numberOfRequiredOutputs) |
static constexpr float | progressFixedToFloat (uint32_t fixed) |
static uint32_t | progressFloatToFixed (float f) |
![]() | |
bool | m_DynamicMultiThreading { true } |
![]() | |
TimeStamp | m_OutputInformationMTime {} |
bool | m_Updating {} |
![]() | |
std::atomic< int > | m_ReferenceCount {} |
using itk::DiscreteGaussianDerivativeImageFilter< TInputImage, TOutputImage >::ArrayType = FixedArray<double, Self::ImageDimension> |
Typedef of double containers
Definition at line 91 of file itkDiscreteGaussianDerivativeImageFilter.h.
using itk::DiscreteGaussianDerivativeImageFilter< TInputImage, TOutputImage >::ConstPointer = SmartPointer<const Self> |
Definition at line 67 of file itkDiscreteGaussianDerivativeImageFilter.h.
using itk::DiscreteGaussianDerivativeImageFilter< TInputImage, TOutputImage >::InputImageType = TInputImage |
Image type information.
Definition at line 76 of file itkDiscreteGaussianDerivativeImageFilter.h.
using itk::DiscreteGaussianDerivativeImageFilter< TInputImage, TOutputImage >::InputInternalPixelType = typename TInputImage::InternalPixelType |
Definition at line 84 of file itkDiscreteGaussianDerivativeImageFilter.h.
using itk::DiscreteGaussianDerivativeImageFilter< TInputImage, TOutputImage >::InputPixelType = typename TInputImage::PixelType |
Definition at line 83 of file itkDiscreteGaussianDerivativeImageFilter.h.
using itk::DiscreteGaussianDerivativeImageFilter< TInputImage, TOutputImage >::OrderArrayType = FixedArray<unsigned int, Self::ImageDimension> |
Array for storing desired order of derivatives
Definition at line 94 of file itkDiscreteGaussianDerivativeImageFilter.h.
using itk::DiscreteGaussianDerivativeImageFilter< TInputImage, TOutputImage >::OutputImageType = TOutputImage |
Definition at line 77 of file itkDiscreteGaussianDerivativeImageFilter.h.
using itk::DiscreteGaussianDerivativeImageFilter< TInputImage, TOutputImage >::OutputInternalPixelType = typename TOutputImage::InternalPixelType |
Definition at line 82 of file itkDiscreteGaussianDerivativeImageFilter.h.
using itk::DiscreteGaussianDerivativeImageFilter< TInputImage, TOutputImage >::OutputPixelType = typename TOutputImage::PixelType |
Extract some information from the image types. Dimensionality of the two images is assumed to be the same.
Definition at line 81 of file itkDiscreteGaussianDerivativeImageFilter.h.
using itk::DiscreteGaussianDerivativeImageFilter< TInputImage, TOutputImage >::Pointer = SmartPointer<Self> |
Definition at line 66 of file itkDiscreteGaussianDerivativeImageFilter.h.
using itk::DiscreteGaussianDerivativeImageFilter< TInputImage, TOutputImage >::Self = DiscreteGaussianDerivativeImageFilter |
Standard class type aliases.
Definition at line 64 of file itkDiscreteGaussianDerivativeImageFilter.h.
using itk::DiscreteGaussianDerivativeImageFilter< TInputImage, TOutputImage >::Superclass = ImageToImageFilter<TInputImage, TOutputImage> |
Definition at line 65 of file itkDiscreteGaussianDerivativeImageFilter.h.
|
inlineprotected |
Definition at line 184 of file itkDiscreteGaussianDerivativeImageFilter.h.
References ImageDimension, m_InternalNumberOfStreamDivisions, m_MaximumError, m_MaximumKernelWidth, m_NormalizeAcrossScale, m_Order, m_UseImageSpacing, and m_Variance.
Referenced by GetNameOfClass().
|
overrideprotecteddefault |
|
virtual |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::LightObject.
|
overrideprotectedvirtual |
Standard pipeline method. While this class does not implement a ThreadedGenerateData(), its GenerateData() delegates all calculations to an NeighborhoodOperatorImageFilter. Since the NeighborhoodOperatorImageFilter is multithreaded, this filter is multithreaded by default.
Reimplemented from itk::ProcessObject.
|
overrideprotectedvirtual |
DiscreteGaussianDerivativeImageFilter needs a larger input requested region than the output requested region (larger by the size of the Gaussian kernel). As such, DiscreteGaussianDerivativeImageFilter needs to provide an implementation for GenerateInputRequestedRegion() in order to inform the pipeline execution model.
Reimplemented from itk::ProcessObject.
|
virtual |
|
virtual |
The algorithm will size the discrete kernel so that the error resulting from truncation of the kernel is no greater than MaximumError. The default is 0.01 in each dimension.
|
virtual |
Set the kernel to be no wider than MaximumKernelWidth pixels, even if MaximumError demands it. The default is 32 pixels.
|
overridevirtual |
Reimplemented from itk::LightObject.
References DiscreteGaussianDerivativeImageFilter().
|
virtual |
Set/Get the flag for calculating scale-space normalized derivatives. Normalized derivatives are obtained multiplying by the scale parameter t.
|
virtual |
Order of derivatives in each dimension. Sets the derivative order independently for each dimension, but see also SetOrder(const unsigned int v). The default is 1 in each dimension.
|
virtual |
Set/Get whether or not the filter will use the spacing of the input image in its calculations. Default is ImageSpacingOn.
|
virtual |
The variance for the discrete Gaussian kernel. Sets the variance independently for each dimension, but see also SetVariance(const double v). The default is 0.0 in each dimension. If UseImageSpacing is true, the units are the physical units of your image. If UseImageSpacing is false then the units are pixels.
|
static |
Method for creation through the object factory.
|
virtual |
Set/Get the flag for calculating scale-space normalized derivatives. Normalized derivatives are obtained multiplying by the scale parameter t.
|
virtual |
Set/Get the flag for calculating scale-space normalized derivatives. Normalized derivatives are obtained multiplying by the scale parameter t.
|
overrideprotectedvirtual |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::LightObject.
|
virtual |
Set/Get number of pieces to divide the input for the internal composite pipeline. The upstream pipeline will not be effected.
The default value is $ImageDimension^2$.
This parameter was introduced to reduce the memory used by images internally, at the cost of performance.
|
virtual |
The algorithm will size the discrete kernel so that the error resulting from truncation of the kernel is no greater than MaximumError. The default is 0.01 in each dimension.
Referenced by SetMaximumError().
|
inline |
Definition at line 158 of file itkDiscreteGaussianDerivativeImageFilter.h.
References itk::MakeFilled(), and SetMaximumError().
|
virtual |
Set the kernel to be no wider than MaximumKernelWidth pixels, even if MaximumError demands it. The default is 32 pixels.
|
virtual |
Set/Get the flag for calculating scale-space normalized derivatives. Normalized derivatives are obtained multiplying by the scale parameter t.
|
inline |
Convenience Set methods for setting all dimensional parameters to the same values.
Definition at line 143 of file itkDiscreteGaussianDerivativeImageFilter.h.
References itk::MakeFilled(), and SetOrder().
|
virtual |
Order of derivatives in each dimension. Sets the derivative order independently for each dimension, but see also SetOrder(const unsigned int v). The default is 1 in each dimension.
Referenced by SetOrder().
|
virtual |
Set/Get whether or not the filter will use the spacing of the input image in its calculations. Default is ImageSpacingOn.
|
virtual |
The variance for the discrete Gaussian kernel. Sets the variance independently for each dimension, but see also SetVariance(const double v). The default is 0.0 in each dimension. If UseImageSpacing is true, the units are the physical units of your image. If UseImageSpacing is false then the units are pixels.
Referenced by SetVariance().
|
inline |
Definition at line 151 of file itkDiscreteGaussianDerivativeImageFilter.h.
References itk::MakeFilled(), and SetVariance().
|
virtual |
Set/Get whether or not the filter will use the spacing of the input image in its calculations. Default is ImageSpacingOn.
|
virtual |
Set/Get whether or not the filter will use the spacing of the input image in its calculations. Default is ImageSpacingOn.
|
staticconstexpr |
Extract some information from the image types. Dimensionality of the two images is assumed to be the same.
Definition at line 88 of file itkDiscreteGaussianDerivativeImageFilter.h.
Referenced by DiscreteGaussianDerivativeImageFilter().
|
private |
Number of pieces to divide the input on the internal composite pipeline. The upstream pipeline will not be effected.
Definition at line 241 of file itkDiscreteGaussianDerivativeImageFilter.h.
Referenced by DiscreteGaussianDerivativeImageFilter().
|
private |
The maximum error of the gaussian blurring kernel in each dimensional direction. For definition of maximum error, see GaussianOperator.
Definition at line 227 of file itkDiscreteGaussianDerivativeImageFilter.h.
Referenced by DiscreteGaussianDerivativeImageFilter().
|
private |
Maximum allowed kernel width for any dimension of the discrete Gaussian approximation
Definition at line 231 of file itkDiscreteGaussianDerivativeImageFilter.h.
Referenced by DiscreteGaussianDerivativeImageFilter().
|
private |
Flag for scale-space normalization of derivatives.
Definition at line 237 of file itkDiscreteGaussianDerivativeImageFilter.h.
Referenced by DiscreteGaussianDerivativeImageFilter().
|
private |
The order of the derivatives in each dimensional direction.
Definition at line 218 of file itkDiscreteGaussianDerivativeImageFilter.h.
Referenced by DiscreteGaussianDerivativeImageFilter().
|
private |
Flag to indicate whether to use image spacing
Definition at line 234 of file itkDiscreteGaussianDerivativeImageFilter.h.
Referenced by DiscreteGaussianDerivativeImageFilter().
|
private |
The variance of the gaussian blurring kernel in each dimensional direction.
Definition at line 222 of file itkDiscreteGaussianDerivativeImageFilter.h.
Referenced by DiscreteGaussianDerivativeImageFilter().