Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitk::ExtractSliceFilter2 Class Referencefinal

Extract an arbitrarily oriented 2D image from a 3D image. More...

#include <mitkExtractSliceFilter2.h>

Inheritance diagram for mitk::ExtractSliceFilter2:
Collaboration diagram for mitk::ExtractSliceFilter2:

Public Types

enum  Interpolator { NearestNeighbor , Linear , Cubic }
 Interpolation methods for slice extraction. More...
 
- 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...
 

Public Member Functions

 mitkClassMacro (ExtractSliceFilter2, ImageToImageFilter)
 
void SetInput (const InputImageType *image) override
 Set the input image. More...
 
void SetInput (unsigned int index, const InputImageType *image) override
 Set the input image at a given index. More...
 
const PlaneGeometry * GetOutputGeometry () const
 Get the output geometry defining the orientation of the extracted 2D slice. More...
 
void SetOutputGeometry (PlaneGeometry::Pointer outputGeometry)
 Set the output geometry defining the orientation of the extracted 2D slice. More...
 
Interpolator GetInterpolator () const
 Get the current interpolation method. More...
 
void SetInterpolator (Interpolator interpolator)
 Set the interpolation method. More...
 
- Public Member Functions inherited from mitk::ImageToImageFilter
 mitkClassMacro (ImageToImageFilter, ImageSource)
 
Pointer Clone () const
 
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...
 

Additional Inherited Members

- 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 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...
 
- 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

Extract an arbitrarily oriented 2D image from a 3D image.

Use ExtractSliceFilter2::SetOutputGeometry to specify the orientation of the 2D output image.

If a pixel of the 2D output image is not located within the bounds of the 3D input image, it is set to the lowest possible pixel value.

Cubic interpolation is considerably slow on the first update for a newly set input image. Subsequent filter updates with cubic interpolation are faster by several orders of magnitude as long as the input image was neither changed nor modified.

This filter is completely based on ITK compared to the VTK-based mitk::ExtractSliceFilter. It is more robust, easy to use, and produces an mitk::Image with valid geometry. Generally it is not as fast as mitk::ExtractSliceFilter, though.

Precondition
The input image must be 3-dimensional, initialized, and have a valid volume set.
The output geometry must be set and must be an image geometry.
See also
ExtractSliceFilter

Definition at line 46 of file mitkExtractSliceFilter2.h.

Member Enumeration Documentation

◆ Interpolator

Interpolation methods for slice extraction.

  • NearestNeighbor – Fastest, no smoothing.
  • Linear – Moderate speed, linear interpolation.
  • Cubic – Slowest on first use, B-spline interpolation (order 2).
Enumerator
NearestNeighbor 
Linear 
Cubic 

Definition at line 56 of file mitkExtractSliceFilter2.h.

Member Function Documentation

◆ GetInterpolator()

Interpolator mitk::ExtractSliceFilter2::GetInterpolator ( ) const

Get the current interpolation method.

Returns
The current Interpolator enum value.

◆ GetOutputGeometry()

const PlaneGeometry* mitk::ExtractSliceFilter2::GetOutputGeometry ( ) const

Get the output geometry defining the orientation of the extracted 2D slice.

Returns
The output PlaneGeometry, or nullptr if not set.

◆ mitkClassMacro()

mitk::ExtractSliceFilter2::mitkClassMacro ( ExtractSliceFilter2  ,
ImageToImageFilter   
)

◆ New()

static Pointer mitk::ExtractSliceFilter2::New ( )
static

◆ SetInput() [1/2]

void mitk::ExtractSliceFilter2::SetInput ( const InputImageType *  image)
overridevirtual

Set the input image.

Resets the internal interpolation function cache when the input changes.

Parameters
[in]imageThe 3D input image.

Reimplemented from mitk::ImageToImageFilter.

◆ SetInput() [2/2]

void mitk::ExtractSliceFilter2::SetInput ( unsigned int  index,
const InputImageType *  image 
)
overridevirtual

Set the input image at a given index.

Only index 0 is supported; any other index will throw.

Parameters
[in]indexMust be 0.
[in]imageThe 3D input image.
Exceptions
mitk::Exceptionif index is not 0.

Reimplemented from mitk::ImageToImageFilter.

◆ SetInterpolator()

void mitk::ExtractSliceFilter2::SetInterpolator ( Interpolator  interpolator)

Set the interpolation method.

Changing the interpolator invalidates the cached interpolation function.

Parameters
[in]interpolatorThe Interpolator enum value to use.

◆ SetOutputGeometry()

void mitk::ExtractSliceFilter2::SetOutputGeometry ( PlaneGeometry::Pointer  outputGeometry)

Set the output geometry defining the orientation of the extracted 2D slice.

Parameters
[in]outputGeometryThe PlaneGeometry specifying the slice orientation.

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