#include <itkBilateralImageFilter.h>
Inheritance diagram for itk::BilateralImageFilter< TInputImage, TOutputImage >:
[NOHEADER] | |
BilateralImageFilter () | |
virtual | ~BilateralImageFilter () |
void | PrintSelf (std::ostream &os, Indent indent) const |
void | BeforeThreadedGenerateData () |
void | ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, int threadId) |
virtual void | GenerateInputRequestedRegion () throw (InvalidRequestedRegionError) |
Public Types | |
typedef BilateralImageFilter | Self |
typedef ImageToImageFilter< TInputImage, TOutputImage > | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
typedef TInputImage | InputImageType |
typedef TOutputImage | OutputImageType |
typedef Superclass::OutputImageRegionType | OutputImageRegionType |
typedef TOutputImage::PixelType | OutputPixelType |
typedef TOutputImage::InternalPixelType | OutputInternalPixelType |
typedef NumericTraits< OutputPixelType >::RealType | OutputPixelRealType |
typedef TInputImage::PixelType | InputPixelType |
typedef TInputImage::InternalPixelType | InputInternalPixelType |
typedef FixedArray< double, itkGetStaticConstMacro(ImageDimension) | ArrayType ) |
typedef ConstNeighborhoodIterator< TInputImage > | NeighborhoodIteratorType |
typedef Neighborhood< double, itkGetStaticConstMacro(ImageDimension) | KernelType ) |
typedef KernelType::SizeType | SizeType |
typedef KernelType::Iterator | KernelIteratorType |
typedef KernelType::ConstIterator | KernelConstIteratorType |
typedef Image< double, itkGetStaticConstMacro(ImageDimension) | GaussianImageType ) |
Public Member Functions | |
virtual const char * | GetNameOfClass () const |
itkStaticConstMacro (ImageDimension, unsigned int, TOutputImage::ImageDimension) | |
void | SetDomainSigma (const double v) |
virtual void | SetDomainSigma (ArrayType _arg) |
virtual const ArrayType | GetDomainSigma () |
virtual void | SetRangeSigma (double _arg) |
virtual double | GetRangeSigma () |
virtual unsigned int | GetFilterDimensionality () |
virtual void | SetFilterDimensionality (unsigned int _arg) |
virtual void | AutomaticKernelSizeOn () |
virtual void | AutomaticKernelSizeOff () |
virtual bool | GetAutomaticKernelSize () |
virtual void | SetAutomaticKernelSize (bool _arg) |
void | SetRadius (const unsigned long) |
virtual void | SetRadius (SizeType _arg) |
virtual const SizeType & | GetRadius () |
virtual void | SetNumberOfRangeGaussianSamples (unsigned long _arg) |
virtual unsigned long | GetNumberOfRangeGaussianSamples () |
Static Public Member Functions | |
Pointer | New () |
This filter uses bilateral filtering to blur an image using both domain and range "neighborhoods". Pixels that are close to a pixel in the image domain and similar to a pixel in the image range are used to calculate the filtered value. Two gaussian kernels (one in the image domain and one in the image range) are used to smooth the image. The result is an image that is smoothed in homogeneous regions yet has edges preserved. The result is similar to anisotropic diffusion but the implementation in non-iterative. Another benefit to bilateral filtering is that any distance metric can be used for kernel smoothing the image range. Hence, color images can be smoothed as vector images, using the CIE distances between intensity values as the similarity metric (the Gaussian kernel for the image domain is evaluated using CIE distances). A separate version of this filter will be designed for color and vector images.
Bilateral filtering is capable of reducing the noise in an image by an order of magnitude while maintaining edges.
The bilateral operator used here was described by Tomasi and Manduchi (Bilateral Filtering for Gray and ColorImages. IEEE ICCV. 1998.)
Support vector images
Definition at line 69 of file itkBilateralImageFilter.h.
|
Typedef of double containers Definition at line 106 of file itkBilateralImageFilter.h. Referenced by itk::BilateralImageFilter< TInputImage, TOutputImage >::~BilateralImageFilter(). |
|
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 77 of file itkBilateralImageFilter.h. |
|
Gaussian image type Definition at line 123 of file itkBilateralImageFilter.h. |
|
Image type information. Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 86 of file itkBilateralImageFilter.h. |
|
Definition at line 98 of file itkBilateralImageFilter.h. |
|
Definition at line 97 of file itkBilateralImageFilter.h. |
|
Definition at line 119 of file itkBilateralImageFilter.h. |
|
Kernel iterator. Definition at line 118 of file itkBilateralImageFilter.h. |
|
Kernel typedef. Definition at line 114 of file itkBilateralImageFilter.h. Referenced by itk::BilateralImageFilter< TInputImage, TOutputImage >::~BilateralImageFilter(). |
|
Neighborhood iterator types. Definition at line 110 of file itkBilateralImageFilter.h. |
|
Superclass typedefs. Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 90 of file itkBilateralImageFilter.h. Referenced by itk::BilateralImageFilter< TInputImage, TOutputImage >::~BilateralImageFilter(). |
|
Some convenient typedefs. Reimplemented from itk::ImageSource< TOutputImage >. Definition at line 87 of file itkBilateralImageFilter.h. |
|
Definition at line 95 of file itkBilateralImageFilter.h. |
|
Definition at line 96 of file itkBilateralImageFilter.h. |
|
Extract some information from the image types. Dimensionality of the two images is assumed to be the same. Definition at line 94 of file itkBilateralImageFilter.h. |
|
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 76 of file itkBilateralImageFilter.h. |
|
Standard class typedefs. Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 74 of file itkBilateralImageFilter.h. Referenced by itk::BilateralImageFilter< TInputImage, TOutputImage >::~BilateralImageFilter(). |
|
Definition at line 115 of file itkBilateralImageFilter.h. Referenced by itk::BilateralImageFilter< TInputImage, TOutputImage >::~BilateralImageFilter(). |
|
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 75 of file itkBilateralImageFilter.h. |
|
Constructor. Default value for DomainSigma is 4. Default value RangeSigma is 50. Definition at line 171 of file itkBilateralImageFilter.h. |
|
Constructor. Default value for DomainSigma is 4. Default value RangeSigma is 50. Definition at line 187 of file itkBilateralImageFilter.h. References itk::BilateralImageFilter< TInputImage, TOutputImage >::ArrayType, itk::BilateralImageFilter< TInputImage, TOutputImage >::KernelType, itk::BilateralImageFilter< TInputImage, TOutputImage >::OutputImageRegionType, itk::BilateralImageFilter< TInputImage, TOutputImage >::Self, and itk::BilateralImageFilter< TInputImage, TOutputImage >::SizeType. |
|
Control automatic kernel size determination. When automatic is "on", the kernel size is a function of the domain sigma. When automatic is "off", the kernel size is whatever is specified by the user.
|
|
Control automatic kernel size determination. When automatic is "on", the kernel size is a function of the domain sigma. When automatic is "off", the kernel size is whatever is specified by the user.
|
|
Do some setup before the ThreadedGenerateData Reimplemented from itk::ImageSource< TOutputImage >. |
|
BilateralImageFilter needs a larger input requested region than the output requested region (larger by the size of the domain Gaussian kernel). As such, BilateralImageFilter needs to provide an implementation for GenerateInputRequestedRegion() in order to inform the pipeline execution model. Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. |
|
Control automatic kernel size determination. When automatic is "on", the kernel size is a function of the domain sigma. When automatic is "off", the kernel size is whatever is specified by the user.
|
|
Standard get/set macros for filter parameters. DomainSigma is specified in the same units as the Image spacing. RangeSigma is specified in the units of intensity. |
|
Standard get/set macros for filter parameters. DomainSigma is specified in the same units as the Image spacing. RangeSigma is specified in the units of intensity. |
|
Run-time type information (and related methods). Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. |
|
Set/Get the number of samples in the approximation to the Gaussian used for the range smoothing. Samples are only generated in the range of [0, 4*m_RangeSigma]. Default is 100. |
|
Set/Get the kernel radius, specified in pixels. This parameter is used only when AutomaticNeighborhoodSize is "off". |
|
Standard get/set macros for filter parameters. DomainSigma is specified in the same units as the Image spacing. RangeSigma is specified in the units of intensity. |
|
Extract some information from the image types. Dimensionality of the two images is assumed to be the same. |
|
Method for creation through the object factory. Reimplemented from itk::Object. |
|
Constructor. Default value for DomainSigma is 4. Default value RangeSigma is 50. Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. |
|
Control automatic kernel size determination. When automatic is "on", the kernel size is a function of the domain sigma. When automatic is "off", the kernel size is whatever is specified by the user.
|
|
Convenience get/set methods for setting all domain parameters to the same values. Definition at line 138 of file itkBilateralImageFilter.h. |
|
Standard get/set macros for filter parameters. DomainSigma is specified in the same units as the Image spacing. RangeSigma is specified in the units of intensity. |
|
Standard get/set macros for filter parameters. DomainSigma is specified in the same units as the Image spacing. RangeSigma is specified in the units of intensity. |
|
Set/Get the number of samples in the approximation to the Gaussian used for the range smoothing. Samples are only generated in the range of [0, 4*m_RangeSigma]. Default is 100. |
|
Set/Get the kernel radius, specified in pixels. This parameter is used only when AutomaticNeighborhoodSize is "off". |
|
Set/Get the kernel radius, specified in pixels. This parameter is used only when AutomaticNeighborhoodSize is "off". |
|
Standard get/set macros for filter parameters. DomainSigma is specified in the same units as the Image spacing. RangeSigma is specified in the units of intensity. |
|
Standard pipeline method. This filter is implemented as a multi-threaded filter. Reimplemented from itk::ImageSource< TOutputImage >. |