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

Shrink the image borders to a minimum considering a background color. More...

#include <mitkAutoCropImageFilter.h>

Inheritance diagram for mitk::AutoCropImageFilter:
Collaboration diagram for mitk::AutoCropImageFilter:

Public Types

typedef itk::ImageRegion< 3 > RegionType
 3D image region type used for cropping bounds. 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 (AutoCropImageFilter, SubImageSelector)
 
Pointer Clone () const
 
virtual float GetBackgroundValue () const
 Get the background value used to determine non-relevant pixels. More...
 
virtual void SetBackgroundValue (float _arg)
 Set the background value. Pixels with this value are considered background. More...
 
virtual float GetMarginFactor () const
 Get the margin factor for enlarging the cropping region. More...
 
virtual void SetMarginFactor (float _arg)
 Set the margin factor to enlarge the cropping region. More...
 
virtual RegionType GetCroppingRegion ()
 Get the computed or manually set cropping region. More...
 
void SetCroppingRegion (RegionType overrideRegion)
 Manually set the cropping region, overriding automatic computation. More...
 
virtual const PixelType GetOutputPixelType ()
 Returns the pixel type of the output image. More...
 
- Public Member Functions inherited from mitk::SubImageSelector
 mitkClassMacro (SubImageSelector, ImageToImageFilter)
 
Pointer Clone () const
 
virtual void SetPosNr (int p)
 Set the position number for sub-image selection. More...
 
 SubImageSelector ()
 
 ~SubImageSelector () override
 
- 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::SubImageSelector
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 Types

typedef itk::Image< float, 3 > ImageType
 
typedef ImageType::Pointer ImagePointer
 

Protected Member Functions

 AutoCropImageFilter ()
 
 ~AutoCropImageFilter () override
 
void ComputeNewImageBounds ()
 
template<typename TPixel , unsigned int VImageDimension>
void ITKCrop3DImage (itk::Image< TPixel, VImageDimension > *inputItkImage, unsigned int timestep)
 
void GenerateOutputInformation () override
 
void GenerateInputRequestedRegion () override
 
void GenerateData () override
 
- Protected Member Functions inherited from mitk::SubImageSelector
mitk::Image::ImageDataItemPointer GetSliceData (int s=0, int t=0, int n=0)
 Get the data item for the specified slice. More...
 
mitk::Image::ImageDataItemPointer GetVolumeData (int t=0, int n=0)
 Get the data item for the specified volume. More...
 
mitk::Image::ImageDataItemPointer GetChannelData (int n=0)
 Get the data item for the specified channel. More...
 
void SetSliceItem (mitk::Image::ImageDataItemPointer dataItem, int s=0, int t=0, int n=0)
 Set the data item for the specified slice in the output image. More...
 
void SetVolumeItem (mitk::Image::ImageDataItemPointer dataItem, int t=0, int n=0)
 Set the data item for the specified volume in the output image. More...
 
void SetChannelItem (mitk::Image::ImageDataItemPointer dataItem, int n=0)
 Set the data item for the specified channel in the output image. 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_BackgroundValue
 
RegionType m_CroppingRegion
 
float m_MarginFactor
 
RegionType::SizeType m_RegionSize
 
RegionType::IndexType m_RegionIndex
 
mitk::ImageTimeSelector::Pointer m_TimeSelector
 
mitk::SlicedData::RegionType m_InputRequestedRegion
 
itk::TimeStamp m_TimeOfHeaderInitialization
 
bool m_OverrideCroppingRegion
 

Additional Inherited Members

- 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

Shrink the image borders to a minimum considering a background color.

This filter determines the smallest bounding box of all pixels different from the background, and returns an output image which has been cropped to this size. The box calculated this way is not the smallest possible box, but the box with the smallest sides perpendicular to the world coordinate system.

The filter works on 3D and 4D image data. For the 4D case, the smallest box is calculated with side lengths as the maximum of single side lengths from all time steps.

2D images are not supported, and will never be.

It is also possible to set the region to be cropped manually using the SetCroppingRegion() method.

A margin can be set to enlarge the cropped region with a constant factor in all directions around the smallest possible.

Author
Thomas Boettger; revised by Tobias Schwarz and Daniel Stein

Definition at line 53 of file mitkAutoCropImageFilter.h.

Member Typedef Documentation

◆ ImagePointer

typedef ImageType::Pointer mitk::AutoCropImageFilter::ImagePointer
protected

Definition at line 145 of file mitkAutoCropImageFilter.h.

◆ ImageType

typedef itk::Image<float, 3> mitk::AutoCropImageFilter::ImageType
protected

Definition at line 144 of file mitkAutoCropImageFilter.h.

◆ RegionType

typedef itk::ImageRegion<3> mitk::AutoCropImageFilter::RegionType

3D image region type used for cropping bounds.

Definition at line 57 of file mitkAutoCropImageFilter.h.

Constructor & Destructor Documentation

◆ AutoCropImageFilter()

mitk::AutoCropImageFilter::AutoCropImageFilter ( )
protected

◆ ~AutoCropImageFilter()

mitk::AutoCropImageFilter::~AutoCropImageFilter ( )
overrideprotected

Member Function Documentation

◆ Clone()

Pointer mitk::AutoCropImageFilter::Clone ( ) const

◆ ComputeNewImageBounds()

void mitk::AutoCropImageFilter::ComputeNewImageBounds ( )
protected

◆ GenerateData()

void mitk::AutoCropImageFilter::GenerateData ( )
overrideprotected

◆ GenerateInputRequestedRegion()

void mitk::AutoCropImageFilter::GenerateInputRequestedRegion ( )
overrideprotected

◆ GenerateOutputInformation()

void mitk::AutoCropImageFilter::GenerateOutputInformation ( )
overrideprotected

◆ GetBackgroundValue()

virtual float mitk::AutoCropImageFilter::GetBackgroundValue ( ) const
virtual

Get the background value used to determine non-relevant pixels.

Returns
The current background pixel value (default: 0).

◆ GetCroppingRegion()

virtual RegionType mitk::AutoCropImageFilter::GetCroppingRegion ( )
virtual

Get the computed or manually set cropping region.

Returns
The cropping region as an itk::ImageRegion<3>.

◆ GetMarginFactor()

virtual float mitk::AutoCropImageFilter::GetMarginFactor ( ) const
virtual

Get the margin factor for enlarging the cropping region.

Returns
The margin factor (default: 0).

◆ GetOutputPixelType()

virtual const PixelType mitk::AutoCropImageFilter::GetOutputPixelType ( )
virtual

Returns the pixel type of the output image.

Returns
The output pixel type.

◆ ITKCrop3DImage()

template<typename TPixel , unsigned int VImageDimension>
void mitk::AutoCropImageFilter::ITKCrop3DImage ( itk::Image< TPixel, VImageDimension > *  inputItkImage,
unsigned int  timestep 
)
protected

◆ mitkClassMacro()

mitk::AutoCropImageFilter::mitkClassMacro ( AutoCropImageFilter  ,
SubImageSelector   
)

◆ New()

static Pointer mitk::AutoCropImageFilter::New ( )
static

◆ SetBackgroundValue()

virtual void mitk::AutoCropImageFilter::SetBackgroundValue ( float  _arg)
virtual

Set the background value. Pixels with this value are considered background.

Parameters
[in]_argThe background pixel value.

◆ SetCroppingRegion()

void mitk::AutoCropImageFilter::SetCroppingRegion ( RegionType  overrideRegion)

Manually set the cropping region, overriding automatic computation.

When this method is called, the filter will use the provided region instead of computing the smallest bounding box from the image content.

Parameters
[in]overrideRegionThe region to use for cropping.

◆ SetMarginFactor()

virtual void mitk::AutoCropImageFilter::SetMarginFactor ( float  _arg)
virtual

Set the margin factor to enlarge the cropping region.

The cropping region is enlarged by this factor in all directions around the tightest bounding box of non-background pixels.

Parameters
[in]_argThe margin factor.

Member Data Documentation

◆ m_BackgroundValue

float mitk::AutoCropImageFilter::m_BackgroundValue
protected

Definition at line 138 of file mitkAutoCropImageFilter.h.

◆ m_CroppingRegion

RegionType mitk::AutoCropImageFilter::m_CroppingRegion
protected

Definition at line 140 of file mitkAutoCropImageFilter.h.

◆ m_InputRequestedRegion

mitk::SlicedData::RegionType mitk::AutoCropImageFilter::m_InputRequestedRegion
protected

Definition at line 152 of file mitkAutoCropImageFilter.h.

◆ m_MarginFactor

float mitk::AutoCropImageFilter::m_MarginFactor
protected

Definition at line 142 of file mitkAutoCropImageFilter.h.

◆ m_OverrideCroppingRegion

bool mitk::AutoCropImageFilter::m_OverrideCroppingRegion
protected

Definition at line 155 of file mitkAutoCropImageFilter.h.

◆ m_RegionIndex

RegionType::IndexType mitk::AutoCropImageFilter::m_RegionIndex
protected

Definition at line 148 of file mitkAutoCropImageFilter.h.

◆ m_RegionSize

RegionType::SizeType mitk::AutoCropImageFilter::m_RegionSize
protected

Definition at line 147 of file mitkAutoCropImageFilter.h.

◆ m_TimeOfHeaderInitialization

itk::TimeStamp mitk::AutoCropImageFilter::m_TimeOfHeaderInitialization
protected

Definition at line 153 of file mitkAutoCropImageFilter.h.

◆ m_TimeSelector

mitk::ImageTimeSelector::Pointer mitk::AutoCropImageFilter::m_TimeSelector
protected

Definition at line 150 of file mitkAutoCropImageFilter.h.


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