Package org.itk.simple
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 Summary
Fields inherited from class org.itk.simple.ProcessObject
swigCMemOwn
-
Constructor Summary
ConstructorsModifierConstructorDescriptionitk::simple::BilateralImageFilter::BilateralImageFilter() Default Constructor that takes no arguments and initializes default parametersprotected
BilateralImageFilter
(long cPtr, boolean cMemoryOwn) -
Method Summary
Modifier and TypeMethodDescriptionvoid
delete()
virtual itk::simple::BilateralImageFilter::~BilateralImageFilter() DestructorImage itk::simple::BilateralImageFilter::Execute(const Image &image1) Execute the filter on the input imageprotected void
finalize()
protected static long
double
double itk::simple::BilateralImageFilter::GetDomainSigma() const Standard get/set macros for filter parameters.getName()
std::string itk::simple::BilateralImageFilter::GetName() const Name of this classlong
unsigned int itk::simple::BilateralImageFilter::GetNumberOfRangeGaussianSamples() const Set/Get the number of samples in the approximation to the Gaussian used for the range smoothing.double
double itk::simple::BilateralImageFilter::GetRangeSigma() const Standard get/set macros for filter parameters.void
setDomainSigma
(double DomainSigma) Self& itk::simple::BilateralImageFilter::SetDomainSigma(double DomainSigma) Convenience get/set methods for setting all domain parameters to the same values.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.void
setRangeSigma
(double RangeSigma) Self& itk::simple::BilateralImageFilter::SetRangeSigma(double RangeSigma) Standard get/set macros for filter parameters.protected static long
toString()
std::string itk::simple::BilateralImageFilter::ToString() const Print ourselves outMethods inherited from class org.itk.simple.ImageFilter
getCPtr, swigRelease
Methods inherited from class org.itk.simple.ProcessObject
abort, 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
-
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
-
swigRelease
-
finalize
protected void finalize()- Overrides:
finalize
in classImageFilter
-
delete
public void delete()virtual itk::simple::BilateralImageFilter::~BilateralImageFilter() Destructor- Overrides:
delete
in classImageFilter
-
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
std::string itk::simple::BilateralImageFilter::GetName() const Name of this class- Overrides:
getName
in classProcessObject
-
toString
std::string itk::simple::BilateralImageFilter::ToString() const Print ourselves out- Overrides:
toString
in classProcessObject
-
execute
Image itk::simple::BilateralImageFilter::Execute(const Image &image1) Execute the filter on the input image
-