Medical Imaging Interaction Toolkit  2025.12.02
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 {
35  //## @ingroup Process
37  {
38  public:
40  itkFactorylessNewMacro(Self);
41  itkCloneMacro(Self);
42 
46  void SetGeometry(const mitk::GeometryData *geometry);
50  // const mitk::GeometryData* GetGeometryData() const;
51 
55  itkSetMacro(OutsideValue, ScalarType);
56  itkGetMacro(OutsideValue, ScalarType);
60  itkSetMacro(UseWholeInputRegion, bool);
61  itkGetMacro(UseWholeInputRegion, bool);
62 
66  itkSetMacro(CurrentTimeStep, ScalarType);
67  itkGetMacro(CurrentTimeStep, ScalarType);
71  itkSetMacro(UseCropTimeStepOnly, bool);
72  itkGetMacro(UseCropTimeStepOnly, bool);
73 
74  protected:
77 
78  virtual const PixelType GetOutputPixelType();
79 
84  void GenerateOutputInformation() override;
85  void GenerateData() override;
86 
90  template <typename TPixel, unsigned int VImageDimension>
91  void CutImage(itk::Image<TPixel, VImageDimension> *inputItkImage, int timeStep);
92 
96  virtual void ComputeData(mitk::Image *input3D, int boTimeStep);
97 
98  // virtual void ComputeData(mitk::MultiLabelSegmentation* image, int boTimeStep);
99 
100  private:
104  mitk::GeometryData::Pointer m_Geometry;
105 
109  ScalarType m_OutsideValue;
110 
114  bool m_UseCropTimeStepOnly;
115 
119  int m_CurrentTimeStep;
123  bool m_UseWholeInputRegion;
127  mitk::ImageTimeSelector::Pointer m_InputTimeSelector;
131  mitk::ImageTimeSelector::Pointer m_OutputTimeSelector;
135  typedef itk::ImageRegion<5> RegionType;
136 
137  mitk::SlicedData::RegionType m_InputRequestedRegion;
141  itk::TimeStamp m_TimeOfHeaderInitialization;
142  };
143 } // namespace mitk
144 
145 #endif
#define MITKBOUNDINGSHAPE_EXPORT
Crops or masks an Boundingbox defined by GeometryData out of an mitk Image.
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 geometry of the bounding object.
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 only having a BaseGeometry but not containing any specific data.
Superclass of all classes generating Images (instances of class Image) as output.
Superclass of all classes having one or more Images as input and generating Images as output.
Image class for storing images.
Definition: mitkImage.h:70
Class for defining the data type of pixels.
Definition: mitkPixelType.h:52
itk::ImageRegion< RegionDimension > RegionType
Find image slices visible on a given plane.
double ScalarType