Medical Imaging Interaction Toolkit  2025.12.02
Medical Imaging Interaction Toolkit
mitkModelFitFunctorBase.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 mitkModelFitFunctorBase_h
14 #define mitkModelFitFunctorBase_h
15 
16 #include <itkObject.h>
17 
18 #include <mitkVector.h>
19 
20 #include "mitkModelBase.h"
22 
23 #include "MitkModelFitExports.h"
24 
25 #include <mutex>
26 
27 namespace mitk
28 {
29 
30  class MITKMODELFIT_EXPORT ModelFitFunctorBase: public ::itk::Object
31  {
32  public:
34  typedef itk::Object Superclass;
37 
38  itkTypeMacro(ModelFitFunctorBase, itk::Object);
39 
41  typedef std::vector<ParameterImagePixelType> InputPixelArrayType;
42  typedef std::vector<ParameterImagePixelType> OutputPixelArrayType;
43 
57  const ModelBase::ParametersType& initialParameters) const;
58 
62  unsigned int GetNumberOfOutputs(const ModelBase* model) const;
63 
65 
69  void RegisterEvaluationParameter(const std::string& parameterName,
70  SVModelFitCostFunction* evaluationCostFunction);
71  const SVModelFitCostFunction* GetEvaluationParameterCostFunction(const std::string& parameterName)
72  const;
73 
75  virtual ParameterNamesType GetCriterionNames() const = 0 ;
76 
80 
81  itkBooleanMacro(DebugParameterMaps);
82  itkSetMacro(DebugParameterMaps, bool);
83  itkGetConstMacro(DebugParameterMaps, bool);
84 
85  protected:
86 
89 
91 
93 
96  virtual OutputPixelArrayType GetCriteria(const ModelBase* model, const ParametersType& parameters,
97  const SignalType& sample) const = 0;
98 
102  const ParametersType& parameters) const;
103 
108  const ParametersType& parameters, const SignalType& sample) const;
109 
110  typedef std::map<std::string, ParameterImagePixelType> DebugParameterMapType;
111 
120  virtual ParametersType DoModelFit(const SignalType& value, const ModelBase* model,
121  const ModelBase::ParametersType& initialParameters,
122  DebugParameterMapType& debugParameters) const = 0;
123 
127 
128  private:
129 
130  typedef std::map<std::string, SVModelFitCostFunction::Pointer> CostFunctionMapType;
131  CostFunctionMapType m_CostFunctionMap;
132  bool m_DebugParameterMaps;
133  mutable std::mutex m_Mutex;
134  };
135 
136 }
137 
138 
139 #endif
#define MITKMODELFIT_EXPORT
Base class for (dynamic) models. A model can be used to calculate its signal given the discrete time ...
Definition: mitkModelBase.h:48
ModelTraitsInterface::ParameterNamesType ParameterNamesType
Definition: mitkModelBase.h:64
ModelTraitsInterface::ParametersType ParametersType
Definition: mitkModelBase.h:59
ModelFitCostFunctionInterface::SignalType SignalType
virtual ParameterNamesType GetCriterionNames() const =0
void RegisterEvaluationParameter(const std::string &parameterName, SVModelFitCostFunction *evaluationCostFunction)
std::map< std::string, ParameterImagePixelType > DebugParameterMapType
itk::SmartPointer< const Self > ConstPointer
std::vector< ParameterImagePixelType > InputPixelArrayType
virtual ParameterNamesType DefineDebugParameterNames() const =0
ModelBase::ParametersType ParametersType
virtual ParametersType DoModelFit(const SignalType &value, const ModelBase *model, const ModelBase::ParametersType &initialParameters, DebugParameterMapType &debugParameters) const =0
OutputPixelArrayType Compute(const InputPixelArrayType &value, const ModelBase *model, const ModelBase::ParametersType &initialParameters) const
unsigned int GetNumberOfOutputs(const ModelBase *model) const
ParameterNamesType GetEvaluationParameterNames() const
ModelBase::ParameterNamesType ParameterNamesType
itk::SmartPointer< Self > Pointer
ParameterNamesType GetDebugParameterNames() const
virtual OutputPixelArrayType GetCriteria(const ModelBase *model, const ParametersType &parameters, const SignalType &sample) const =0
OutputPixelArrayType GetEvaluationParameters(const ModelBase *model, const ParametersType &parameters, const SignalType &sample) const
std::vector< ParameterImagePixelType > OutputPixelArrayType
OutputPixelArrayType GetDerivedParameters(const ModelBase *model, const ParametersType &parameters) const
const SVModelFitCostFunction * GetEvaluationParameterCostFunction(const std::string &parameterName) const
Find image slices visible on a given plane.
double ScalarType