Class BilateralImageFilter
java.lang.Object
org.itk.simple.ProcessObject
org.itk.simple.ImageFilter
org.itk.simple.BilateralImageFilter
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
- 
Field SummaryFields inherited from class org.itk.simple.ProcessObjectswigCMemOwn
- 
Constructor SummaryConstructorsModifierConstructorDescriptionitk::simple::BilateralImageFilter::BilateralImageFilter() Default Constructor that takes no arguments and initializes default parametersprotectedBilateralImageFilter(long cPtr, boolean cMemoryOwn) 
- 
Method SummaryModifier and TypeMethodDescriptionvoiddelete()virtual itk::simple::BilateralImageFilter::~BilateralImageFilter() DestructorImage itk::simple::BilateralImageFilter::Execute(const Image &image1) Execute the filter on the input imageprotected voidfinalize()protected static longdoubledouble itk::simple::BilateralImageFilter::GetDomainSigma() const Standard get/set macros for filter parameters.getName()std::string itk::simple::BilateralImageFilter::GetName() const Name of this classlongunsigned int itk::simple::BilateralImageFilter::GetNumberOfRangeGaussianSamples() const Set/Get the number of samples in the approximation to the Gaussian used for the range smoothing.doubledouble itk::simple::BilateralImageFilter::GetRangeSigma() const Standard get/set macros for filter parameters.voidsetDomainSigma(double DomainSigma) Self& itk::simple::BilateralImageFilter::SetDomainSigma(double DomainSigma) Convenience get/set methods for setting all domain parameters to the same values.voidsetNumberOfRangeGaussianSamples(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.voidsetRangeSigma(double RangeSigma) Self& itk::simple::BilateralImageFilter::SetRangeSigma(double RangeSigma) Standard get/set macros for filter parameters.protected static longtoString()std::string itk::simple::BilateralImageFilter::ToString() const Print ourselves outMethods inherited from class org.itk.simple.ImageFiltergetCPtr, swigReleaseMethods inherited from class org.itk.simple.ProcessObjectabort, addCommand, debugOff, debugOn, getCPtr, getDebug, getGlobalDefaultCoordinateTolerance, getGlobalDefaultDebug, getGlobalDefaultDirectionTolerance, getGlobalDefaultNumberOfThreads, getGlobalDefaultThreader, getGlobalWarningDisplay, getNumberOfThreads, getNumberOfWorkUnits, getProgress, globalDefaultDebugOff, globalDefaultDebugOn, globalWarningDisplayOff, globalWarningDisplayOn, hasCommand, removeAllCommands, setDebug, setGlobalDefaultCoordinateTolerance, setGlobalDefaultDebug, setGlobalDefaultDirectionTolerance, setGlobalDefaultNumberOfThreads, setGlobalDefaultThreader, setGlobalWarningDisplay, setNumberOfThreads, setNumberOfWorkUnits, swigRelease
- 
Constructor Details- 
BilateralImageFilterprotected BilateralImageFilter(long cPtr, boolean cMemoryOwn) 
- 
BilateralImageFilterpublic BilateralImageFilter()itk::simple::BilateralImageFilter::BilateralImageFilter() Default Constructor that takes no arguments and initializes default parameters
 
- 
- 
Method Details- 
getCPtr
- 
swigRelease
- 
finalizeprotected void finalize()- Overrides:
- finalizein class- ImageFilter
 
- 
deletepublic void delete()virtual itk::simple::BilateralImageFilter::~BilateralImageFilter() Destructor- Overrides:
- deletein class- ImageFilter
 
- 
setDomainSigmapublic void setDomainSigma(double DomainSigma) Self& itk::simple::BilateralImageFilter::SetDomainSigma(double DomainSigma) Convenience get/set methods for setting all domain parameters to the same values.
- 
getDomainSigmapublic 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.
- 
setRangeSigmapublic 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.
- 
getRangeSigmapublic 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.
- 
setNumberOfRangeGaussianSamplespublic 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.
- 
getNumberOfRangeGaussianSamplespublic 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.
- 
getNamestd::string itk::simple::BilateralImageFilter::GetName() const Name of this class- Overrides:
- getNamein class- ProcessObject
 
- 
toStringstd::string itk::simple::BilateralImageFilter::ToString() const Print ourselves out- Overrides:
- toStringin class- ProcessObject
 
- 
execute
 
-