Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkBoundingShapeCropper.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkBoundingShapeCropper_h
14 #define mitkBoundingShapeCropper_h
15 
18 #include <mitkCommon.h>
19 #include <mitkGeometryData.h>
20 #include <mitkImageAccessByItk.h>
21 #include <mitkImageTimeSelector.h>
22 #include <mitkImageToImageFilter.h>
23 
24 #include <itkImage.h>
25 
26 namespace mitk
27 {
48  {
49  public:
51  itkFactorylessNewMacro(Self);
52  itkCloneMacro(Self);
53 
60  void SetGeometry(const mitk::GeometryData *geometry);
61 
68  itkSetMacro(OutsideValue, ScalarType);
69 
74  itkGetMacro(OutsideValue, ScalarType);
75 
82  itkSetMacro(UseWholeInputRegion, bool);
83 
88  itkGetMacro(UseWholeInputRegion, bool);
89 
96  itkSetMacro(CurrentTimeStep, ScalarType);
97 
102  itkGetMacro(CurrentTimeStep, ScalarType);
103 
109  itkSetMacro(UseCropTimeStepOnly, bool);
110 
115  itkGetMacro(UseCropTimeStepOnly, bool);
116 
117  protected:
120 
121  virtual const PixelType GetOutputPixelType();
122 
127  void GenerateOutputInformation() override;
128  void GenerateData() override;
129 
133  template <typename TPixel, unsigned int VImageDimension>
134  void CutImage(itk::Image<TPixel, VImageDimension> *inputItkImage, int timeStep);
135 
139  virtual void ComputeData(mitk::Image *input3D, int boTimeStep);
140 
141  // virtual void ComputeData(mitk::MultiLabelSegmentation* image, int boTimeStep);
142 
143  private:
147  mitk::GeometryData::Pointer m_Geometry;
148 
152  ScalarType m_OutsideValue;
153 
157  bool m_UseCropTimeStepOnly;
158 
162  int m_CurrentTimeStep;
166  bool m_UseWholeInputRegion;
170  mitk::ImageTimeSelector::Pointer m_InputTimeSelector;
174  mitk::ImageTimeSelector::Pointer m_OutputTimeSelector;
178  typedef itk::ImageRegion<5> RegionType;
179 
180  mitk::SlicedData::RegionType m_InputRequestedRegion;
184  itk::TimeStamp m_TimeOfHeaderInitialization;
185  };
186 } // namespace mitk
187 
188 #endif
#define MITKBOUNDINGSHAPE_EXPORT
Crops or masks an image using a bounding box defined by GeometryData.
virtual const PixelType GetOutputPixelType()
void CutImage(itk::Image< TPixel, VImageDimension > *inputItkImage, int timeStep)
Template Function for cropping and masking images with scalar pixel type.
void SetGeometry(const mitk::GeometryData *geometry)
Set the geometry of the bounding object used for cropping/masking.
void GenerateOutputInformation() override
virtual void ComputeData(mitk::Image *input3D, int boTimeStep)
Process the image and create the output.
void GenerateData() override
mitkClassMacro(BoundingShapeCropper, ImageToImageFilter)
void GenerateInputRequestedRegion() override
Reimplemented from ImageToImageFilter.
Data class that holds only a BaseGeometry without any specific data payload.
Superclass of all classes having one or more Images as input and generating Images as output.
Image class for storing multi-dimensional medical image data.
Definition: mitkImage.h:76
Describes the data type of image pixels.
Definition: mitkPixelType.h:75
itk::ImageRegion< RegionDimension > RegionType
Provides the AccessByItk macro family for type-safe access to mitk::Image data through ITK image type...
Find image slices visible on a given plane.
double ScalarType
Scalar type used throughout MITK for geometric computations.