12 #ifndef mitkConcentrationCurveGenerator_h
13 #define mitkConcentrationCurveGenerator_h
16 #include <itkBinaryFunctorImageFilter.h>
43 itkSetConstObjectMacro(DynamicImage,
Image);
44 itkGetConstObjectMacro(DynamicImage,
Image);
47 itkSetMacro(RelaxationTime,
double);
48 itkGetConstReferenceMacro(RelaxationTime,
double);
50 itkSetMacro(Relaxivity,
double);
51 itkGetConstReferenceMacro(Relaxivity,
double);
53 itkSetMacro(RecoveryTime,
double);
54 itkGetConstReferenceMacro(RecoveryTime,
double);
56 itkSetMacro(RepetitionTime,
double);
57 itkGetConstReferenceMacro(RepetitionTime,
double);
59 itkSetMacro(FlipAngle,
double);
60 itkGetConstReferenceMacro(FlipAngle,
double);
62 itkSetMacro(FlipAnglePDW,
double);
63 itkGetConstReferenceMacro(FlipAnglePDW,
double);
65 itkSetMacro(Factor,
double);
66 itkGetConstReferenceMacro(Factor,
double);
69 itkSetConstObjectMacro(PDWImage,
Image);
70 itkGetConstObjectMacro(PDWImage,
Image);
72 itkSetMacro(T2Factor,
double);
73 itkGetConstReferenceMacro(T2Factor,
double);
75 itkSetMacro(T2EchoTime,
double);
76 itkGetConstReferenceMacro(T2EchoTime,
double);
81 itkSetMacro(BaselineStartTimeStep,
unsigned int);
82 itkGetConstReferenceMacro(BaselineStartTimeStep,
unsigned int);
84 itkSetMacro(BaselineEndTimeStep,
unsigned int);
85 itkGetConstReferenceMacro(BaselineEndTimeStep,
unsigned int);
87 itkSetMacro(isTurboFlashSequence,
bool);
88 itkGetConstReferenceMacro(isTurboFlashSequence,
bool);
90 itkSetMacro(AbsoluteSignalEnhancement,
bool);
91 itkGetConstReferenceMacro(AbsoluteSignalEnhancement,
bool);
93 itkSetMacro(RelativeSignalEnhancement,
bool);
94 itkGetConstReferenceMacro(RelativeSignalEnhancement,
bool);
96 itkSetMacro(UsingT1Map,
bool);
97 itkGetConstReferenceMacro(UsingT1Map,
bool);
100 itkSetMacro(isT2weightedImage,
bool);
101 itkGetConstReferenceMacro(isT2weightedImage,
bool);
111 template<
class TPixel_input,
class TPixel_baseline>
112 mitk::Image::Pointer convertToConcentration(
const itk::Image<TPixel_input, 3> *itkInputImage,
const itk::Image<TPixel_baseline, 3> *itkBaselineImage);
120 void PrepareBaselineImage();
122 template<
class TPixel>
123 void CalculateAverageBaselineImage(
const itk::Image<TPixel,4> *itkBaselineImage);
126 virtual void Convert();
136 bool m_isT2weightedImage;
138 bool m_isTurboFlashSequence;
139 bool m_AbsoluteSignalEnhancement;
140 bool m_RelativeSignalEnhancement;
145 double m_RecoveryTime;
147 double m_RepetitionTime;
149 double m_RelaxationTime;
155 double m_FlipAnglePDW;
161 unsigned int m_BaselineStartTimeStep;
163 unsigned int m_BaselineEndTimeStep;