Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkBoundingObjectCutter.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 mitkBoundingObjectCutter_h
14 #define mitkBoundingObjectCutter_h
15 
17 #include <itkImage.h>
18 #include <mitkBoundingObject.h>
19 #include <mitkCommon.h>
20 #include <mitkImageTimeSelector.h>
21 #include <mitkImageToImageFilter.h>
22 
23 namespace mitk
24 {
41  {
42  public:
44  itkFactorylessNewMacro(Self);
45  itkCloneMacro(Self);
46 
51  void SetBoundingObject(const mitk::BoundingObject *boundingObject);
52 
58 
63  itkSetMacro(InsideValue, ScalarType);
64 
69  itkGetMacro(InsideValue, ScalarType);
70 
75  itkSetMacro(OutsideValue, ScalarType);
76 
81  itkGetMacro(OutsideValue, ScalarType);
82 
91  itkSetMacro(UseInsideValue, bool);
92 
97  itkGetMacro(UseInsideValue, bool);
98 
100  itkBooleanMacro(UseInsideValue);
101 
110  itkSetMacro(AutoOutsideValue, bool);
111 
116  itkGetMacro(AutoOutsideValue, bool);
117 
119  itkBooleanMacro(AutoOutsideValue);
120 
125  itkGetMacro(InsidePixelCount, unsigned int);
126 
131  itkGetMacro(OutsidePixelCount, unsigned int);
132 
137  itkSetMacro(UseWholeInputRegion, bool);
138 
143  itkGetMacro(UseWholeInputRegion, bool);
144 
145  protected:
148 
149  virtual const PixelType GetOutputPixelType();
150 
152  void GenerateOutputInformation() override;
153  void GenerateData() override;
154 
155  template <typename TPixel, unsigned int VImageDimension, typename TOutputPixel>
156  friend void CutImageWithOutputTypeSelect(itk::Image<TPixel, VImageDimension> *inputItkImage,
158  int boTimeStep,
159  TOutputPixel *dummy);
160  template <typename TPixel, unsigned int VImageDimension, typename TOutputPixel>
161  friend void CutImageWithOutputTypeSelect(itk::VectorImage<TPixel, VImageDimension> *inputItkImage,
163  int boTimeStep,
164  TOutputPixel *dummy);
165  template <typename TPixel, unsigned int VImageDimension>
166  friend void CutImage(itk::Image<TPixel, VImageDimension> *itkImage,
168  int boTimeStep);
169  template <typename TPixel, unsigned int VImageDimension>
170  friend void CutImage(itk::VectorImage<TPixel, VImageDimension> *itkImage,
172  int boTimeStep);
173  virtual void ComputeData(mitk::Image *input3D, int boTimeStep);
174 
176  mitk::BoundingObject::Pointer m_BoundingObject;
177 
182 
187 
190 
198 
199  unsigned int m_OutsidePixelCount;
200  unsigned int m_InsidePixelCount;
201 
204 
207 
208  mitk::ImageTimeSelector::Pointer m_InputTimeSelector;
209  mitk::ImageTimeSelector::Pointer m_OutputTimeSelector;
210 
212  };
213 } // namespace mitk
214 
215 #endif
#define MITKALGORITHMSEXT_EXPORT
Cuts a BoundingObject region out of a mitk::Image.
mitk::ImageTimeSelector::Pointer m_InputTimeSelector
const mitk::BoundingObject * GetBoundingObject() const
Get the bounding object that defines the cutting region.
friend void CutImageWithOutputTypeSelect(itk::Image< TPixel, VImageDimension > *inputItkImage, mitk::BoundingObjectCutter *cutter, int boTimeStep, TOutputPixel *dummy)
mitk::ImageTimeSelector::Pointer m_OutputTimeSelector
void GenerateInputRequestedRegion() override
void GenerateData() override
mitk::BoundingObject::Pointer m_BoundingObject
BoundingObject that will be cut.
virtual void ComputeData(mitk::Image *input3D, int boTimeStep)
itk::TimeStamp m_TimeOfHeaderInitialization
Time when header was last initialized.
void SetBoundingObject(const mitk::BoundingObject *boundingObject)
Set the bounding object that defines the cutting region.
friend void CutImageWithOutputTypeSelect(itk::VectorImage< TPixel, VImageDimension > *inputItkImage, mitk::BoundingObjectCutter *cutter, int boTimeStep, TOutputPixel *dummy)
ScalarType m_InsideValue
Value for inside pixels, used when m_UseInsideValue is true.
mitkClassMacro(BoundingObjectCutter, ImageToImageFilter)
mitk::SlicedData::RegionType m_InputRequestedRegion
Region of input needed for cutting.
void GenerateOutputInformation() override
bool m_UseInsideValue
Use m_InsideValue for inside pixels (default: false).
virtual const PixelType GetOutputPixelType()
bool m_AutoOutsideValue
If true, the minimum of the output pixel type is used as outside value (default: false).
ScalarType m_OutsideValue
Value for outside pixels (default: 0). Used only if m_AutoOutsideValue is false.
friend void CutImage(itk::VectorImage< TPixel, VImageDimension > *itkImage, mitk::BoundingObjectCutter *cutter, int boTimeStep)
friend void CutImage(itk::Image< TPixel, VImageDimension > *itkImage, mitk::BoundingObjectCutter *cutter, int boTimeStep)
Abstract superclass of all bounding objects (cylinder, cuboid, cone, ellipsoid, etc....
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
Find image slices visible on a given plane.
double ScalarType
Scalar type used throughout MITK for geometric computations.