13 #ifndef mitkConvertToConcentrationTurboFlashFunctor_h
14 #define mitkConvertToConcentrationTurboFlashFunctor_h
35 template <
class TInputPixel1,
class TInputPixel2,
class TOutputpixel>
52 void initialize(
double relaxationtime,
double relaxivity,
double recoverytime)
54 m_Trec = recoverytime;
56 m_T10 = relaxationtime;
62 return !(*
this == other);
67 return (this->m_Trec == other.m_Trec) && (this->m_alpha == other.m_alpha) && (this->m_T10 == other.m_T10);
76 inline TOutputpixel
operator()(
const TInputPixel1 & value,
const TInputPixel2 & baseline)
78 TOutputpixel concentration(0);
82 if (baseline != 0 && ((
double)value/baseline - exp(m_Trec/m_T10) * ((
double)value/baseline - 1)) > 0 )
84 concentration = -1 / (m_Trec * m_alpha) * log((
double)value/baseline - exp(m_Trec/m_T10) * ((double)value/baseline - 1));
#define MITKPHARMACOKINETICS_EXPORT
Binary functor that converts TurboFLASH MR signal values to contrast agent concentration.
void initialize(double relaxationtime, double relaxivity, double recoverytime)
Initializes the functor with TurboFLASH sequence parameters.
ConvertToConcentrationTurboFlashFunctor()
~ConvertToConcentrationTurboFlashFunctor()
bool operator==(const ConvertToConcentrationTurboFlashFunctor &other) const
Equality comparison operator.
TOutputpixel operator()(const TInputPixel1 &value, const TInputPixel2 &baseline)
Computes concentration from signal and baseline pixel values.
bool operator!=(const ConvertToConcentrationTurboFlashFunctor &other) const
Inequality comparison operator.
Find image slices visible on a given plane.