4 #include <itkVectorImage.h> 10 template <
class InputPixelScalarType,
class OutputPixelScalarType>
49 void SetBValuesList(std::vector <double> bValuesList ) {m_BValuesList = bValuesList;}
51 itkSetMacro(B0Threshold,
double)
52 itkGetMacro(B0Threshold,
double)
54 itkGetMacro(EstimatedB0Image, OutputB0ImageType *)
55 itkGetMacro(EstimatedVarianceImage, OutputB0ImageType *)
63 m_BValuesList.clear();
66 m_EstimatedB0Image = NULL;
67 m_EstimatedVarianceImage = NULL;
78 static double OptimizationFunction(
const std::vector<double> &x, std::vector<double> &grad,
void *func_data);
80 std::vector <double> &predictedValues, vnl_matrix <double> &rotationMatrix,
81 vnl_matrix <double> &workTensor, vnl_diag_matrix <double> &workEigenValues);
88 std::vector <double> m_BValuesList;
89 std::vector< vnl_vector_fixed<double,3> > m_GradientDirections;
92 typename OutputB0ImageType::Pointer m_EstimatedB0Image, m_EstimatedVarianceImage;
94 static const unsigned int m_NumberOfComponents = 6;
96 vnl_matrix <double> m_InitialMatrixSolver;
InputImageType::Pointer InputImagePointer
void AddGradientDirection(unsigned int i, vnl_vector_fixed< double, 3 > &grad)
double ComputeB0AndVarianceFromTensorVector(const vnl_matrix< double > &tensorValue, const std::vector< double > &dwiSignal, double &outVarianceValue)
itk::Image< OutputPixelScalarType, 3 > OutputB0ImageType
DTIEstimationImageFilter()
Superclass::OutputImageRegionType OutputImageRegionType
itk::VectorImage< OutputPixelScalarType, 3 > OutputImageType
OutputImageType DTIImageType
void BeforeThreadedGenerateData() ITK_OVERRIDE
vnl_matrix< double > workTensor
itk::Image< InputPixelScalarType, 4 > Image4DType
static double OptimizationFunction(const std::vector< double > &x, std::vector< double > &grad, void *func_data)
void DynamicThreadedGenerateData(const OutputImageRegionType &outputRegionForThread) ITK_OVERRIDE
void GenerateOutputInformation() ITK_OVERRIDE
DTIEstimationImageFilter< InputPixelScalarType, OutputPixelScalarType > Self
OutputImageType::Pointer OutputImagePointer
vnl_diag_matrix< double > workEigenValues
void CheckComputationMask() ITK_OVERRIDE
itk::Image< InputPixelScalarType, 3 > InputImageType
std::vector< double > predictedValues
Superclass::InputImageRegionType InputImageRegionType
itk::SmartPointer< Self > Pointer
Superclass::MaskImageType MaskImageType
itk::SmartPointer< const Self > ConstPointer
void SetBValuesList(std::vector< double > bValuesList)
virtual ~DTIEstimationImageFilter()
anima::MaskedImageToImageFilter< InputImageType, OutputImageType > Superclass
double ComputeCostAtPosition(const std::vector< double > &x, const std::vector< double > &observedData, std::vector< double > &predictedValues, vnl_matrix< double > &rotationMatrix, vnl_matrix< double > &workTensor, vnl_diag_matrix< double > &workEigenValues)