ITK
4.1.0
Insight Segmentation and Registration Toolkit
|
#include <itkDiscreteGaussianImageFilter.h>
Blurs an image by separable convolution with discrete gaussian kernels. This filter performs Gaussian blurring by separable convolution of an image and a discrete Gaussian operator (kernel).
The Gaussian operator used here was described by Tony Lindeberg (Discrete Scale-Space Theory and the Scale-Space Primal Sketch. Dissertation. Royal Institute of Technology, Stockholm, Sweden. May 1991.) The Gaussian kernel used here was designed so that smoothing and derivative operations commute after discretization.
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.
Definition at line 62 of file itkDiscreteGaussianImageFilter.h.
typedef FixedArray< double, itkGetStaticConstMacro(ImageDimension) > itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::ArrayType |
Typedef of double containers
Definition at line 99 of file itkDiscreteGaussianImageFilter.h.
typedef SmartPointer< const Self > itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::ConstPointer |
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
Definition at line 70 of file itkDiscreteGaussianImageFilter.h.
typedef TInputImage itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::InputImageType |
Image type information.
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
Definition at line 76 of file itkDiscreteGaussianImageFilter.h.
typedef TInputImage::InternalPixelType itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::InputInternalPixelType |
Definition at line 87 of file itkDiscreteGaussianImageFilter.h.
typedef TInputImage::PixelType itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::InputPixelType |
Definition at line 86 of file itkDiscreteGaussianImageFilter.h.
typedef NumericTraits<InputPixelType>::ValueType itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::InputPixelValueType |
Pixel value type for Vector pixel types
Definition at line 90 of file itkDiscreteGaussianImageFilter.h.
typedef TOutputImage itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::OutputImageType |
Some convenient typedefs.
Reimplemented from itk::ImageSource< TOutputImage >.
Definition at line 80 of file itkDiscreteGaussianImageFilter.h.
typedef TOutputImage::InternalPixelType itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::OutputInternalPixelType |
Definition at line 85 of file itkDiscreteGaussianImageFilter.h.
typedef TOutputImage::PixelType itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::OutputPixelType |
Extract some information from the image types. Dimensionality of the two images is assumed to be the same.
Definition at line 84 of file itkDiscreteGaussianImageFilter.h.
typedef NumericTraits<OutputPixelType>::ValueType itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::OutputPixelValueType |
Definition at line 91 of file itkDiscreteGaussianImageFilter.h.
typedef SmartPointer< Self > itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::Pointer |
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
Definition at line 69 of file itkDiscreteGaussianImageFilter.h.
typedef DiscreteGaussianImageFilter itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::Self |
Standard class typedefs.
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
Definition at line 67 of file itkDiscreteGaussianImageFilter.h.
typedef ImageToImageFilter< TInputImage, TOutputImage > itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::Superclass |
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
Definition at line 68 of file itkDiscreteGaussianImageFilter.h.
itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::DiscreteGaussianImageFilter | ( | ) | [inline, protected] |
End concept checking
Definition at line 239 of file itkDiscreteGaussianImageFilter.h.
virtual itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::~DiscreteGaussianImageFilter | ( | ) | [inline, protected, virtual] |
Definition at line 250 of file itkDiscreteGaussianImageFilter.h.
itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::DiscreteGaussianImageFilter | ( | const Self & | ) | [private] |
virtual::itk::LightObject::Pointer itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::CreateAnother | ( | void | ) | const [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::Object.
void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::GenerateData | ( | ) | [protected, virtual] |
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::ImageSource< TOutputImage >.
virtual void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::GenerateInputRequestedRegion | ( | ) | throw ( InvalidRequestedRegionError ) [virtual] |
DiscreteGaussianImageFilter needs a larger input requested region than the output requested region (larger by the size of the Gaussian kernel). As such, DiscreteGaussianImageFilter needs to provide an implementation for GenerateInputRequestedRegion() in order to inform the pipeline execution model.
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
virtual unsigned int itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::GetFilterDimensionality | ( | ) | const [virtual] |
Set the number of dimensions to smooth. Defaults to the image dimension. Can be set to less than ImageDimension, smoothing all the dimensions less than FilterDimensionality. For instance, to smooth the slices of a volume without smoothing in Z, set the FilterDimensionality to 2.
virtual const unsigned int& itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::GetInternalNumberOfStreamDivisions | ( | ) | [virtual] |
virtual const ArrayType itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::GetMaximumError | ( | ) | const [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 int itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::GetMaximumKernelWidth | ( | ) | const [virtual] |
Set the kernel to be no wider than MaximumKernelWidth pixels, even if MaximumError demands it. The default is 32 pixels.
virtual const char* itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::GetNameOfClass | ( | ) | const [virtual] |
Run-time type information (and related methods).
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
virtual bool itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::GetUseImageSpacing | ( | ) | const [virtual] |
Set/Get whether or not the filter will use the spacing of the input image in its calculations
virtual const ArrayType itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::GetVariance | ( | ) | const [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 Pointer itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::New | ( | ) | [static] |
Method for creation through the object factory.
Reimplemented from itk::Object.
void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::operator= | ( | const Self & | ) | [private] |
PushBackInput(), PushFronInput() in the public section force the input to be the type expected by an ImageToImageFilter. However, these methods end of "hiding" the versions from the superclass (ProcessObject) whose arguments are DataObjects. Here, we re-expose the versions from ProcessObject to avoid warnings about hiding methods from the superclass.
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::PrintSelf | ( | std::ostream & | os, |
Indent | indent | ||
) | const [protected, virtual] |
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::ImageToImageFilter< TInputImage, TOutputImage >.
virtual void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::SetFilterDimensionality | ( | unsigned int | _arg | ) | [virtual] |
Set the number of dimensions to smooth. Defaults to the image dimension. Can be set to less than ImageDimension, smoothing all the dimensions less than FilterDimensionality. For instance, to smooth the slices of a volume without smoothing in Z, set the FilterDimensionality to 2.
virtual void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::SetInternalNumberOfStreamDivisions | ( | unsigned int | _arg | ) | [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 void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::SetMaximumError | ( | ArrayType | _arg | ) | [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.
void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::SetMaximumError | ( | const typename ArrayType::ValueType | v | ) | [inline] |
Definition at line 142 of file itkDiscreteGaussianImageFilter.h.
void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::SetMaximumError | ( | const double * | v | ) | [inline] |
Definition at line 170 of file itkDiscreteGaussianImageFilter.h.
void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::SetMaximumError | ( | const float * | v | ) | [inline] |
Definition at line 181 of file itkDiscreteGaussianImageFilter.h.
virtual void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::SetMaximumKernelWidth | ( | int | _arg | ) | [virtual] |
Set the kernel to be no wider than MaximumKernelWidth pixels, even if MaximumError demands it. The default is 32 pixels.
virtual void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::SetUseImageSpacing | ( | bool | _arg | ) | [virtual] |
Set/Get whether or not the filter will use the spacing of the input image in its calculations
void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::SetUseImageSpacingOff | ( | ) | [inline] |
Ignore the image spacing. Use this option if you want to specify Gaussian variance in pixels. Default is ImageSpacingOn.
Definition at line 200 of file itkDiscreteGaussianImageFilter.h.
void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::SetUseImageSpacingOn | ( | ) | [inline] |
Use the image spacing information in calculations. Use this option if you want to specify Gaussian variance in real world units. Default is ImageSpacingOn.
Definition at line 195 of file itkDiscreteGaussianImageFilter.h.
virtual void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::SetVariance | ( | ArrayType | _arg | ) | [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.
void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::SetVariance | ( | const typename ArrayType::ValueType | v | ) | [inline] |
Convenience Set methods for setting all dimensional parameters to the same values.
Definition at line 135 of file itkDiscreteGaussianImageFilter.h.
void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::SetVariance | ( | const double * | v | ) | [inline] |
Definition at line 148 of file itkDiscreteGaussianImageFilter.h.
void itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::SetVariance | ( | const float * | v | ) | [inline] |
Definition at line 159 of file itkDiscreteGaussianImageFilter.h.
itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::typedef | ( | Concept::HasNumericTraits< OutputPixelValueType > | ) |
Begin concept checking This class requires OutputHasNumericTraitsCheck in the form of ( Concept::HasNumericTraits< OutputPixelValueType > )
const unsigned int itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::ImageDimension = TOutputImage::ImageDimension [static] |
Extract some information from the image types. Dimensionality of the two images is assumed to be the same.
Definition at line 96 of file itkDiscreteGaussianImageFilter.h.
unsigned int itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::m_FilterDimensionality [private] |
Number of dimensions to process. Default is all dimensions
Definition at line 278 of file itkDiscreteGaussianImageFilter.h.
unsigned int itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::m_InternalNumberOfStreamDivisions [private] |
Number of pieces to divide the input on the internal composite pipeline. The upstream pipeline will not be effected.
Definition at line 285 of file itkDiscreteGaussianImageFilter.h.
ArrayType itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::m_MaximumError [private] |
The maximum error of the gaussian blurring kernel in each dimensional direction. For definition of maximum error, see GaussianOperator.
Definition at line 271 of file itkDiscreteGaussianImageFilter.h.
int itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::m_MaximumKernelWidth [private] |
Maximum allowed kernel width for any dimension of the discrete Gaussian approximation
Definition at line 275 of file itkDiscreteGaussianImageFilter.h.
bool itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::m_UseImageSpacing [private] |
Flag to indicate whether to use image spacing
Definition at line 281 of file itkDiscreteGaussianImageFilter.h.
ArrayType itk::DiscreteGaussianImageFilter< TInputImage, TOutputImage >::m_Variance [private] |
The variance of the gaussian blurring kernel in each dimensional direction.
Definition at line 266 of file itkDiscreteGaussianImageFilter.h.