Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitk::BilateralFilter Class Reference

Edge-preserving smoothing filter using bilateral filtering. More...

#include <mitkBilateralFilter.h>

Inheritance diagram for mitk::BilateralFilter:
Collaboration diagram for mitk::BilateralFilter:

Public Member Functions

 mitkClassMacro (BilateralFilter, ImageToImageFilter)
 
Pointer Clone () const
 
virtual void SetDomainSigma (float _arg)
 Set/Get the sigma of the spatial domain Gaussian kernel. More...
 
virtual void SetRangeSigma (float _arg)
 Set/Get the sigma of the range (intensity) Gaussian kernel. More...
 
virtual void SetAutoKernel (bool _arg)
 Set/Get whether the kernel size is automatically determined. More...
 
virtual void SetKernelRadius (unsigned int _arg)
 Set/Get the manual kernel radius (used when AutoKernel is false). More...
 
virtual float GetDomainSigma ()
 Get the spatial domain sigma. More...
 
virtual float GetRangeSigma ()
 Get the range (intensity) sigma. More...
 
virtual bool GetAutoKernel ()
 Get whether automatic kernel sizing is enabled. More...
 
virtual unsigned int GetKernelRadius ()
 Get the manual kernel radius. More...
 
- Public Member Functions inherited from mitk::ImageToImageFilter
 mitkClassMacro (ImageToImageFilter, ImageSource)
 
Pointer Clone () const
 
virtual void SetInput (const InputImageType *image)
 Set the image input of this process object. More...
 
virtual void SetInput (unsigned int idx, const InputImageType *image)
 Set the image input at the specified index. More...
 
InputImageType * GetInput (void)
 Get the input image (non-const). More...
 
InputImageType * GetInput (unsigned int idx)
 Get the input image at the specified index (non-const). More...
 
const InputImageType * GetInput (void) const
 Get the input image (const). More...
 
const InputImageType * GetInput (unsigned int idx) const
 Get the input image at the specified index (const). More...
 
- Public Member Functions inherited from mitk::ImageSource
 mitkClassMacro (ImageSource, BaseDataSource)
 
Pointer Clone () const
 
mitkBaseDataSourceGetOutputDeclarations itk::DataObject::Pointer MakeOutput (DataObjectPointerArraySizeType idx) override
 Get the output data of this image source object. More...
 
itk::DataObject::Pointer MakeOutput (const DataObjectIdentifierType &name) override
 
virtual vtkImageData * GetVtkImageData ()
 Get the output as VTK image data (non-const version). More...
 
virtual const vtkImageData * GetVtkImageData () const
 Get the output as VTK image data (const version). More...
 
- Public Member Functions inherited from mitk::BaseDataSource
 mitkClassMacroItkParent (BaseDataSource, itk::ProcessObject)
 
OutputType * GetOutput ()
 
const OutputType * GetOutput () const
 
OutputType * GetOutput (DataObjectPointerArraySizeType idx)
 
const OutputType * GetOutput (DataObjectPointerArraySizeType idx) const
 
virtual void GraftOutput (OutputType *output)
 Graft the specified BaseData onto this BaseDataSource's output. More...
 
virtual void GraftOutput (const DataObjectIdentifierType &key, OutputType *output)
 Graft the specified base data object onto a named output. More...
 
virtual void GraftNthOutput (unsigned int idx, OutputType *output)
 Graft the specified base data object onto this BaseDataSource's idx'th output. More...
 
bool Updating () const
 Check whether the pipeline is currently executing. More...
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from mitk::ImageToImageFilter
static Pointer New ()
 Method for creation through the object factory. More...
 
- Static Public Member Functions inherited from mitk::ImageSource
static Pointer New ()
 Method for creation through the object factory. More...
 

Protected Member Functions

 BilateralFilter ()
 standard constructor More...
 
 ~BilateralFilter () override
 standard destructor More...
 
void GenerateOutputInformation () override
 Method generating the output information of this filter (e.g. image dimension, image type, etc.). The interface ImageToImageFilter requires this implementation. Everything is taken from the input image. More...
 
void GenerateData () override
 Method generating the output of this filter. Called in the updated process of the pipeline. This method generates the smoothed output image. More...
 
template<typename TPixel , unsigned int VImageDimension>
void ItkImageProcessing (const itk::Image< TPixel, VImageDimension > *itkImage)
 Internal templated method calling the ITK bilteral filter. Here the actual filtering is performed. More...
 
- Protected Member Functions inherited from mitk::ImageToImageFilter
 ImageToImageFilter ()
 
 ~ImageToImageFilter () override
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 Print self information to the given stream. More...
 
void GenerateInputRequestedRegion () override
 Determine the input requested region to produce the output requested region. More...
 
- Protected Member Functions inherited from mitk::ImageSource
 ImageSource ()
 
 ~ImageSource () override
 
void GenerateData () override
 A version of GenerateData() specific for image processing filters. More...
 
virtual void ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, itk::ThreadIdType threadId)
 If an imaging filter can be implemented as a multithreaded algorithm, the filter will provide an implementation of ThreadedGenerateData(). More...
 
void PrepareOutputs () override
 This method is intentionally left blank. More...
 
virtual void AllocateOutputs ()
 The GenerateData method normally allocates the buffers for all of the outputs of a filter. More...
 
virtual void BeforeThreadedGenerateData ()
 If an imaging filter needs to perform processing after the buffer has been allocated but before threads are spawned, the filter can provide an implementation for BeforeThreadedGenerateData(). More...
 
virtual void AfterThreadedGenerateData ()
 If an imaging filter needs to perform processing after all processing threads have completed, the filter can provide an implementation for AfterThreadedGenerateData(). More...
 
virtual unsigned int SplitRequestedRegion (unsigned int i, unsigned int num, OutputImageRegionType &splitRegion)
 Split the output's RequestedRegion into "num" pieces, returning region "i" as "splitRegion". More...
 
- Protected Member Functions inherited from mitk::BaseDataSource
 BaseDataSource ()
 Constructor. More...
 
 ~BaseDataSource () override
 Destructor. More...
 

Protected Attributes

float m_DomainSigma
 Sigma of the spatial domain Gaussian kernel. More...
 
float m_RangeSigma
 Sigma of the range (intensity) Gaussian kernel. More...
 
bool m_AutoKernel
 If true, kernel size is computed from DomainSigma; if false, m_KernelRadius is used. More...
 
unsigned int m_KernelRadius
 Manual kernel radius, used when m_AutoKernel is false. More...
 

Additional Inherited Members

- Public Types inherited from mitk::ImageToImageFilter
typedef Superclass::OutputImageRegionType OutputImageRegionType
 Superclass typedefs. More...
 
typedef mitk::Image InputImageType
 Some convenient typedefs. More...
 
typedef InputImageType::Pointer InputImagePointer
 
typedef InputImageType::ConstPointer InputImageConstPointer
 
typedef SlicedData::RegionType InputImageRegionType
 
- Public Types inherited from mitk::ImageSource
typedef mitk::Image OutputImageType
 Some convenient typedefs. More...
 
typedef OutputImageType OutputType
 
typedef OutputImageType::Pointer OutputImagePointer
 
typedef SlicedData::RegionType OutputImageRegionType
 
- Public Types inherited from mitk::BaseDataSource
typedef BaseData OutputType
 Output data type. More...
 
typedef itk::DataObject::DataObjectIdentifierType DataObjectIdentifierType
 Identifier type for named data objects. More...
 
- Static Protected Member Functions inherited from mitk::ImageSource
static itk::ITK_THREAD_RETURN_TYPE ThreaderCallback (void *arg)
 Static function used as a "callback" by the MultiThreader. More...
 
- Static Protected Member Functions inherited from mitk::BaseDataSource
static Pointer New ()
 

Detailed Description

Edge-preserving smoothing filter using bilateral filtering.

This filter wraps the ITK BilateralImageFilter and applies it to MITK images. Bilateral filtering smooths an image while preserving edges by combining a spatial (domain) Gaussian with a range (intensity) Gaussian. Pixels that are both spatially close and have similar intensities are averaged together, while pixels across edges (with large intensity differences) are not.

The filter supports 2D, 2D+t, 3D, 3D+t, and 4D images. Input images with fewer than 2 or more than 4 dimensions are rejected.

Default parameter values: DomainSigma = 2.0, RangeSigma = 50.0, AutoKernel = true, KernelRadius = 1.

See also
itk::BilateralImageFilter
ImageToImageFilter

Definition at line 43 of file mitkBilateralFilter.h.

Constructor & Destructor Documentation

◆ BilateralFilter()

mitk::BilateralFilter::BilateralFilter ( )
protected

standard constructor

◆ ~BilateralFilter()

mitk::BilateralFilter::~BilateralFilter ( )
overrideprotected

standard destructor

Member Function Documentation

◆ Clone()

Pointer mitk::BilateralFilter::Clone ( ) const

◆ GenerateData()

void mitk::BilateralFilter::GenerateData ( )
overrideprotected

Method generating the output of this filter. Called in the updated process of the pipeline. This method generates the smoothed output image.

◆ GenerateOutputInformation()

void mitk::BilateralFilter::GenerateOutputInformation ( )
overrideprotected

Method generating the output information of this filter (e.g. image dimension, image type, etc.). The interface ImageToImageFilter requires this implementation. Everything is taken from the input image.

◆ GetAutoKernel()

virtual bool mitk::BilateralFilter::GetAutoKernel ( )
virtual

Get whether automatic kernel sizing is enabled.

◆ GetDomainSigma()

virtual float mitk::BilateralFilter::GetDomainSigma ( )
virtual

Get the spatial domain sigma.

◆ GetKernelRadius()

virtual unsigned int mitk::BilateralFilter::GetKernelRadius ( )
virtual

Get the manual kernel radius.

◆ GetRangeSigma()

virtual float mitk::BilateralFilter::GetRangeSigma ( )
virtual

Get the range (intensity) sigma.

◆ ItkImageProcessing()

template<typename TPixel , unsigned int VImageDimension>
void mitk::BilateralFilter::ItkImageProcessing ( const itk::Image< TPixel, VImageDimension > *  itkImage)
protected

Internal templated method calling the ITK bilteral filter. Here the actual filtering is performed.

◆ mitkClassMacro()

mitk::BilateralFilter::mitkClassMacro ( BilateralFilter  ,
ImageToImageFilter   
)

◆ New()

static Pointer mitk::BilateralFilter::New ( )
static

◆ SetAutoKernel()

virtual void mitk::BilateralFilter::SetAutoKernel ( bool  _arg)
virtual

Set/Get whether the kernel size is automatically determined.

When true, the kernel size is calculated from DomainSigma by ITK's BilateralImageFilter. When false, the kernel size is set manually via KernelRadius. Default is true.

◆ SetDomainSigma()

virtual void mitk::BilateralFilter::SetDomainSigma ( float  _arg)
virtual

Set/Get the sigma of the spatial domain Gaussian kernel.

Controls how far apart spatially neighboring pixels can be to still influence each other. Larger values produce more spatial smoothing. Default is 2.0.

◆ SetKernelRadius()

virtual void mitk::BilateralFilter::SetKernelRadius ( unsigned int  _arg)
virtual

Set/Get the manual kernel radius (used when AutoKernel is false).

Specifies the radius of the kernel in pixels. Only effective when AutoKernel is set to false. Default is 1.

◆ SetRangeSigma()

virtual void mitk::BilateralFilter::SetRangeSigma ( float  _arg)
virtual

Set/Get the sigma of the range (intensity) Gaussian kernel.

Controls how different in intensity two pixels can be to still influence each other. Larger values allow pixels with bigger intensity differences to be averaged. Default is 50.0.

Member Data Documentation

◆ m_AutoKernel

bool mitk::BilateralFilter::m_AutoKernel
protected

If true, kernel size is computed from DomainSigma; if false, m_KernelRadius is used.

Definition at line 122 of file mitkBilateralFilter.h.

◆ m_DomainSigma

float mitk::BilateralFilter::m_DomainSigma
protected

Sigma of the spatial domain Gaussian kernel.

Definition at line 120 of file mitkBilateralFilter.h.

◆ m_KernelRadius

unsigned int mitk::BilateralFilter::m_KernelRadius
protected

Manual kernel radius, used when m_AutoKernel is false.

Definition at line 123 of file mitkBilateralFilter.h.

◆ m_RangeSigma

float mitk::BilateralFilter::m_RangeSigma
protected

Sigma of the range (intensity) Gaussian kernel.

Definition at line 121 of file mitkBilateralFilter.h.


The documentation for this class was generated from the following file: