Class BilateralImageFilter


public class BilateralImageFilter extends ImageFilter
Blurs an image while preserving edges. 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.) See: GaussianOperator RecursiveGaussianImageFilter DiscreteGaussianImageFilter AnisotropicDiffusionImageFilter Image Neighborhood NeighborhoodOperator TodoSupport color images Support vector images See: itk::simple::Bilateral for the procedural interface itk::BilateralImageFilter for the Doxygen on the original ITK class. C++ includes: sitkBilateralImageFilter.h
  • Constructor Details

    • BilateralImageFilter

      protected BilateralImageFilter(long cPtr, boolean cMemoryOwn)
    • BilateralImageFilter

      public BilateralImageFilter()
      itk::simple::BilateralImageFilter::BilateralImageFilter() Default Constructor that takes no arguments and initializes default parameters
  • Method Details

    • getCPtr

      protected static long getCPtr(BilateralImageFilter obj)
    • swigRelease

      protected static long swigRelease(BilateralImageFilter obj)
    • finalize

      protected void finalize()
      Overrides:
      finalize in class ImageFilter
    • delete

      public void delete()
      virtual itk::simple::BilateralImageFilter::~BilateralImageFilter() Destructor
      Overrides:
      delete in class ImageFilter
    • setDomainSigma

      public void setDomainSigma(double DomainSigma)
      Self& itk::simple::BilateralImageFilter::SetDomainSigma(double DomainSigma) Convenience get/set methods for setting all domain parameters to the same values.
    • getDomainSigma

      public double getDomainSigma()
      double itk::simple::BilateralImageFilter::GetDomainSigma() const 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.
    • setRangeSigma

      public void setRangeSigma(double RangeSigma)
      Self& itk::simple::BilateralImageFilter::SetRangeSigma(double RangeSigma) 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.
    • getRangeSigma

      public double getRangeSigma()
      double itk::simple::BilateralImageFilter::GetRangeSigma() const 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.
    • setNumberOfRangeGaussianSamples

      public void setNumberOfRangeGaussianSamples(long NumberOfRangeGaussianSamples)
      Self& itk::simple::BilateralImageFilter::SetNumberOfRangeGaussianSamples(unsigned int NumberOfRangeGaussianSamples) 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.
    • getNumberOfRangeGaussianSamples

      public long getNumberOfRangeGaussianSamples()
      unsigned int itk::simple::BilateralImageFilter::GetNumberOfRangeGaussianSamples() const 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.
    • getName

      public String getName()
      std::string itk::simple::BilateralImageFilter::GetName() const Name of this class
      Overrides:
      getName in class ProcessObject
    • toString

      public String toString()
      std::string itk::simple::BilateralImageFilter::ToString() const Print ourselves out
      Overrides:
      toString in class ProcessObject
    • execute

      public Image execute(Image image1)
      Image itk::simple::BilateralImageFilter::Execute(const Image &image1) Execute the filter on the input image