#include <itkBilateralImageFilter.h>
Inheritance diagram for itk::BilateralImageFilter:
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 ConstNeighborhoodIterator< TInputImage > | NeighborhoodIteratorType |
typedef Neighborhood< double, itkGetStaticConstMacro(ImageDimension) | KernelType ) |
typedef KernelType::Iterator | KernelIteratorType |
typedef KernelType::ConstIterator | KernelConstIteratorType |
typedef Image< double, itkGetStaticConstMacro(ImageDimension) | GaussianImageType ) |
Public Methods | |
virtual const char * | GetClassName () const |
itkStaticConstMacro (ImageDimension, unsigned int, TOutputImage::ImageDimension) | |
virtual void | GenerateInputRequestedRegion () throw (InvalidRequestedRegionError) |
virtual void | SetDomainSigma (double data[]) |
virtual void | SetDomainSigma (float data[]) |
virtual const double * | GetDomainSigma () const |
virtual void | SetRangeSigma (double _arg) |
virtual double | GetRangeSigma () |
virtual unsigned int | GetFilterDimensionality () |
virtual void | SetFilterDimensionality (unsigned int _arg) |
void | SetDomainSigma (const double v) |
void | SetDomainSigma (const float v) |
Static Public Methods | |
Pointer | New () |
Protected Methods | |
void | BeforeThreadedGenerateData () |
void | ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, int threadId) |
BilateralImageFilter () | |
virtual | ~BilateralImageFilter () |
void | PrintSelf (std::ostream &os, Indent indent) const |
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 68 of file itkBilateralImageFilter.h.
|
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 76 of file itkBilateralImageFilter.h. |
|
Gaussian image type Definition at line 118 of file itkBilateralImageFilter.h. |
|
Image type information. Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 85 of file itkBilateralImageFilter.h. |
|
Definition at line 97 of file itkBilateralImageFilter.h. |
|
Definition at line 96 of file itkBilateralImageFilter.h. |
|
Definition at line 114 of file itkBilateralImageFilter.h. |
|
Kernel iterator. Definition at line 113 of file itkBilateralImageFilter.h. |
|
Kernel typedef. Definition at line 110 of file itkBilateralImageFilter.h. |
|
Neighborhood iterator types. Definition at line 106 of file itkBilateralImageFilter.h. |
|
Superclass typedefs. Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 89 of file itkBilateralImageFilter.h. |
|
Some convenient typedefs. Reimplemented from itk::ImageSource< TOutputImage >. Definition at line 86 of file itkBilateralImageFilter.h. |
|
Definition at line 94 of file itkBilateralImageFilter.h. |
|
Definition at line 95 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 93 of file itkBilateralImageFilter.h. |
|
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 75 of file itkBilateralImageFilter.h. |
|
Standard class typedefs. Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 73 of file itkBilateralImageFilter.h. |
|
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. Definition at line 74 of file itkBilateralImageFilter.h. |
|
Constructor. Default value for DomainSigma is 4. Default value RangeSigma is 50. Definition at line 163 of file itkBilateralImageFilter.h. |
|
Constructor. Default value for DomainSigma is 4. Default value RangeSigma is 50. Definition at line 173 of file itkBilateralImageFilter.h. |
|
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 >. |
|
Run-time type information (and related methods). Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >. |
|
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. |
|
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 >. |
|
Convenience get/set methods for setting all domain parameters to the same values. Definition at line 144 of file itkBilateralImageFilter.h. |
|
Convenience get/set methods for setting all domain parameters to the same values. Definition at line 134 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. |
|
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. |
|
Standard pipeline method. This filter is implemented as a multi-threaded filter. Reimplemented from itk::ImageSource< TOutputImage >. |