3 #include <itkSingleValuedCostFunction.h> 4 #include <AnimaMCMSimilarityExport.h> 35 virtual MeasureType GetValue(const ParametersType ¶meters) const ITK_OVERRIDE;
36 virtual
void GetDerivative(const ParametersType ¶meters, DerivativeType &derivative) const ITK_OVERRIDE;
38 void SetReferenceModels(const
std::vector <MCMPointer> &refModels, const
std::vector <GradientType> &gradients,
39 const
double &smallDelta, const
double &bigDelta, const
std::vector <
double> &gradientStrengths);
40 void SetMovingModels(const
std::vector<MCMPointer> &movingModels, const
std::vector <GradientType> &gradients,
41 const
double &smallDelta, const
double &bigDelta, const
std::vector <
double> &gradientStrengths);
43 void SetGradientStrengths(const
std::vector <
double> &val);
44 void SetGradientDirections(const
std::vector <GradientType> &val);
46 void SetBValueWeightIndexes(const
std::vector <
unsigned int> &val);
47 void SetSphereWeights(const
std::vector <
double> &val);
49 itkSetMacro(ParameterScale,
double)
50 void SetSmallDelta(
double val);
51 void SetBigDelta(
double val);
53 unsigned int GetNumberOfParameters() const ITK_OVERRIDE {
return 1;}
58 m_UpdatedData =
false;
60 m_ParameterScale = 1.0e-3;
69 void operator=(
const Self&);
71 std::vector < std::vector <double> > m_ReferenceModelSignalValues;
72 std::vector < std::vector <double> > m_MovingModelSignalValues;
74 std::vector <unsigned int> m_BValueWeightIndexes;
75 std::vector <double> m_GradientStrengths, m_SphereWeights;
76 std::vector <GradientType> m_GradientDirections;
78 mutable bool m_UpdatedData;
79 mutable double m_ConstantTerm;
80 double m_ParameterScale;
81 double m_SmallDelta, m_BigDelta;
MCModelType::Vector3DType GradientType
Superclass::MeasureType MeasureType
anima::BaseCompartment::Vector3DType Vector3DType
ApproximateMCMSmoothingCostFunction Self
ApproximateMCMSmoothingCostFunction()
Superclass::ParametersType ParametersType
const double DiffusionBigDelta
Default big delta value (classical values)
virtual ~ApproximateMCMSmoothingCostFunction()
const double DiffusionSmallDelta
Default small delta value (classical values)
itk::SmartPointer< const Self > ConstPointer
Superclass::DerivativeType DerivativeType
MCModelType::Pointer MCMPointer
itk::SmartPointer< Self > Pointer
itk::SingleValuedCostFunction Superclass
MultiCompartmentModel: holds several diffusion compartments, ordered by type It also handles weights ...
anima::BaseCompartment::Pointer BaseCompartmentPointer