Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkSUVFunctorPolicy.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,
6 Division of Medical and Biological Informatics.
7 All rights reserved.
8 
9 This software is distributed WITHOUT ANY WARRANTY; without
10 even the implied warranty of MERCHANTABILITY or FITNESS FOR
11 A PARTICULAR PURPOSE.
12 
13 See LICENSE.txt or http://www.mitk.org for details.
14 
15 ===================================================================*/
16 
17 #ifndef mitkSUVFunctorPolicy_h
18 #define mitkSUVFunctorPolicy_h
19 
20 #include <functional>
21 #include <limits>
22 
23 #include <itkIndex.h>
24 #include <mitkNumericConstants.h>
25 
26 #include <MitkPETExports.h>
27 
28 namespace mitk
29 {
30 
69  {
70  public:
73 
75  typedef itk::Index<3> IndexType;
76 
83  using DecayTimeFunctionType = std::function < double(const IndexType&) >;
84 
96 
110  SUVFunctorPolicy(double injectedActivity, double scaleNumerator, double halfLife);
111 
113  virtual ~SUVFunctorPolicy();
114 
123 
129  void SetInjectedActivity(double a);
130 
137  void SetScaleNumerator(double n);
138 
144  void SetHalfLife(double tau);
145 
156  bool IsConfigured() const;
157 
169  bool operator!=(const SUVFunctorPolicy& other) const;
170 
183  bool operator==(const SUVFunctorPolicy& other) const;
184 
202  const IndexType& currentIndex) const;
203 
204  protected:
205 
207  double m_InjectedActivity = std::numeric_limits<double>::quiet_NaN();
209  double m_ScaleNumerator = std::numeric_limits<double>::quiet_NaN();
211  double m_HalfLife = std::numeric_limits<double>::quiet_NaN();
212 
214  };
215 
216 }
217 
218 
219 #endif
#define MITKPET_EXPORT
Generic functor policy for computing SUV on a per-voxel basis.
itk::Index< 3 > IndexType
3D image index type.
bool IsConfigured() const
Check whether the policy is fully configured and safe to invoke.
void SetInjectedActivity(double a)
Set the injected radioactivity.
ScalarType SUVPixelType
Pixel type for SUV output values.
SUVFunctorPolicy()
Default constructor.
bool operator!=(const SUVFunctorPolicy &other) const
Inequality comparison operator.
std::function< double(const IndexType &) > DecayTimeFunctionType
Function type for querying the decay time at a given image index.
DecayTimeFunctionType m_Functor
SUVFunctorPolicy(double injectedActivity, double scaleNumerator, double halfLife)
Construct a fully configured policy in one step.
virtual ~SUVFunctorPolicy()
Destructor.
void SetDecayTimeFunctor(const DecayTimeFunctionType &functor)
Set the functor used to query the decay time for a given voxel index.
bool operator==(const SUVFunctorPolicy &other) const
Equality comparison operator.
void SetScaleNumerator(double n)
Set the variant-specific scale numerator.
void SetHalfLife(double tau)
Set the radionuclide half-life.
SUVPixelType operator()(const SUVPixelType &value, const IndexType &currentIndex) const
Compute the SUV for a single pixel value at a given image index.
Find image slices visible on a given plane.
double ScalarType
Scalar type used throughout MITK for geometric computations.