3 #include <itkSingleValuedCostFunction.h> 4 #include "AnimaRelaxometryExport.h" 16 public itk::SingleValuedCostFunction
36 virtual MeasureType GetValue(const ParametersType & parameters) const ITK_OVERRIDE;
37 virtual
void GetDerivative(const ParametersType & parameters, DerivativeType & derivative) const ITK_OVERRIDE {}
39 itkSetMacro(EchoSpacing,
double)
40 itkSetMacro(ExcitationFlipAngle,
double)
42 void SetT2RelaxometrySignals(
ParametersType &relaxoSignals) {m_T2RelaxometrySignals = relaxoSignals;}
43 void SetT2FlipAngles(std::vector <double> & flipAngles) {m_T2FlipAngles = flipAngles;}
45 itkSetMacro(T1Value,
double)
46 itkSetMacro(M0Value,
double)
48 void SetT2DistributionSamples(
std::vector <
std::vector <
double> > &values) {m_T2DistributionSamples = values;}
71 m_T2IntegrationStep = 1;
72 m_LowerT2Bound = 1.0e-4;
73 m_UpperT2Bound = 3000;
80 void operator=(
const Self&);
85 double m_ExcitationFlipAngle;
86 std::vector <double> m_T2FlipAngles;
88 double m_T2IntegrationStep;
89 double m_LowerT2Bound, m_UpperT2Bound;
90 std::vector < std::vector <double> > m_T2DistributionSamples;
91 std::vector <double> m_T2WorkingValues;
92 std::vector < std::vector <unsigned int> > m_DistributionSamplesT2Correspondences;
96 double m_T1Value, m_M0Value;
100 mutable std::vector <anima::EPGSignalSimulator::RealVectorType> m_SimulatedEPGValues;
void SetDistributionSamplesT2Correspondences(std::vector< std::vector< unsigned int > > &values)
unsigned int GetNumberOfParameters() const ITK_OVERRIDE
itk::SmartPointer< const Self > ConstPointer
Superclass::ParametersType ParametersType
void SetT2IntegrationStep(double value)
std::vector< std::complex< double > > ComplexVectorType
itk::SingleValuedCostFunction Superclass
std::vector< ComplexVectorType > MatrixType
B1T2RelaxometryDistributionCostFunction Self
void SetT2FlipAngles(std::vector< double > &flipAngles)
Cost function for estimating B1 from T2 relaxometry acquisition, following a multi-T2 EPG decay model...
B1T2RelaxometryDistributionCostFunction()
void SetT2Weights(ParametersType &weights)
std::vector< double > RealVectorType
void SetT2WorkingValues(std::vector< double > &values)
itk::SmartPointer< Self > Pointer
void SetUpperT2Bound(double value)
virtual ~B1T2RelaxometryDistributionCostFunction()
Superclass::MeasureType MeasureType
Superclass::DerivativeType DerivativeType
void SetLowerT2Bound(double value)