16 #ifndef _itk_TensorReconstructionWithEigenvalueCorrectionFilter_h_
17 #define _itk_TensorReconstructionWithEigenvalueCorrectionFilter_h_
19 #include "itkImageToImageFilter.h"
20 #include <itkDiffusionTensor3D.h>
21 #include <itkVectorImage.h>
22 #include <vnl/algo/vnl_symmetric_eigensystem.h>
31 template <
class TDiffusionPixelType,
class TTensorPixelType>
33 :
public ImageToImageFilter< itk::Image< TDiffusionPixelType, 3 >, itk::Image<itk::DiffusionTensor3D<TTensorPixelType>,3> >
49 typedef ImageToImageFilter< Image< TDiffusionPixelType, 3>,
50 Image< DiffusionTensor3D< TTensorPixelType >, 3 > >
54 itkFactorylessNewMacro(Self)
84 typedef VectorContainer<
unsigned int,
96 const GradientImagesType *image);
102 itkSetMacro( BValue, TTensorPixelType)
105 itkSetMacro( B0Threshold,
double)
108 itkGetMacro(PseudoInverse, vnl_matrix<
double>)
111 itkGetMacro(CorrectedDiffusionVolumes, ImageType::Pointer)
114 itkGetMacro(H, vnl_matrix<
double>)
117 itkGetMacro(BVec, vnl_vector<
double>)
120 itkGetMacro(B0Mask, vnl_vector<
short>)
126 return m_GradientImagePointer;
159 void CalculateAttenuation(vnl_vector<double> org_data, vnl_vector<double> &atten,
int nof,
int numberb0);
182 unsigned int m_NumberOfGradientDirections;
192 unsigned int m_NumberOfBaselineImages;
196 double m_B0Threshold;
203 vnl_matrix<double> m_PseudoInverse;
206 vnl_matrix<double> m_H;
209 vnl_vector<double> m_BVec;
212 vnl_vector<short> m_B0Mask;
227 #ifndef ITK_MANUAL_INSTANTIATION
itk::SmartPointer< Self > Pointer
itk::VectorImage< short, 3 > ImageType
void SetGradientImage(GradientDirectionContainerType *, const GradientImagesType *image)
SmartPointer< Self > Pointer
GradientImagesType::PixelType GradientVectorType
Image< TensorPixelType, 3 > TensorImageType
VectorContainer< unsigned int, GradientDirectionType > GradientDirectionContainerType
DiffusionTensor3D< TTensorPixelType > TensorPixelType
~TensorReconstructionWithEigenvalueCorrectionFilter()
TDiffusionPixelType GradientPixelType
itk::Image< itk::DiffusionTensor3D< TTensorPixelType >, 3 > OutputType
Superclass::OutputImageRegionType OutputImageRegionType
SmartPointer< const Self > ConstPointer
itk::Image< short, 3 >::Pointer GetMask()
TensorReconstructionWithEigenvalueCorrectionFilter Self
vnl_vector_fixed< double, 3 > GradientDirectionType
ImageType::Pointer GetGradientImagePointer()
ImageToImageFilter< Image< TDiffusionPixelType, 3 >, Image< DiffusionTensor3D< TTensorPixelType >, 3 > > Superclass
VectorImage< GradientPixelType, 3 > GradientImagesType
GradientImageTypeEnumeration
TensorReconstructionWithEigenvalueCorrectionFilter()