18 #ifndef __itkDiffusionTensor3DReconstructionImageFilter_h
19 #define __itkDiffusionTensor3DReconstructionImageFilter_h
24 #include "vnl/vnl_matrix.h"
25 #include "vnl/vnl_vector_fixed.h"
26 #include "vnl/vnl_matrix_fixed.h"
27 #include "vnl/algo/vnl_svd.h"
123 template<
typename TReferenceImagePixelType,
124 typename TGradientImagePixelType = TReferenceImagePixelType,
125 typename TTensorPixelType = double,
126 typename TMaskImageType = Image<unsigned char, 3> >
129 Image< DiffusionTensor3D< TTensorPixelType >, 3 > >
210 itkExceptionMacro(<<
"Cannot call both methods:"
211 <<
"AddGradientImage and SetGradientImage. Please call only one of them.");
228 itkExceptionMacro(<<
"Gradient direction " << idx <<
"does not exist");
254 itkSetMacro(BValue, TTensorPixelType);
258 itkGetConstReferenceMacro(BValue, TTensorPixelType);
261 #ifdef ITK_USE_CONCEPT_CHECKING
335 #ifndef ITK_MANUAL_INSTANTIATION
336 #include "itkDiffusionTensor3DReconstructionImageFilter.hxx"
SmartPointer< const Self > ConstPointer
Light weight base class for most itk classes.
void PrintSelf(std::ostream &os, Indent indent) const
CoefficientMatrixType m_BMatrix
DiffusionTensor3DReconstructionImageFilter Self
virtual GradientDirectionType GetGradientDirection(unsigned int idx) const
TensorBasisMatrixType m_TensorBasis
void AddGradientImage(const GradientDirectionType &, const GradientImageType *image)
unsigned int m_NumberOfGradientDirections
Templated n-dimensional vector image class.
TReferenceImagePixelType ReferencePixelType
Image< GradientPixelType, 3 > GradientImageType
void SetMaskSpatialObject(MaskSpatialObjectType *maskSpatialObject)
void BeforeThreadedGenerateData()
vnl_matrix< double > CoefficientMatrixType
VectorImage< GradientPixelType, 3 > GradientImagesType
vnl_matrix_fixed< double, 6, 6 > TensorBasisMatrixType
TGradientImagePixelType GradientPixelType
const GradientImageType * GetGradientImage(unsigned index) const
DiffusionTensor3D< TTensorPixelType > TensorPixelType
TMaskImageType MaskImageType
Superclass::OutputImageRegionType OutputImageRegionType
Image< TReferenceImagePixelType, 3 > InputImageType
DiffusionTensor3DReconstructionImageFilter()
TTensorPixelType m_BValue
DataObject * GetInput(const DataObjectIdentifierType &key)
SmartPointer< Self > Pointer
void SetMaskImage(MaskImageType *maskImage)
void ComputeTensorBasis()
Image< TensorPixelType, 3 > TensorImageType
GradientImageTypeEnumeration m_GradientImageTypeEnumeration
This class takes as input one or more reference image (acquired in the absence of diffusion sensitizi...
~DiffusionTensor3DReconstructionImageFilter()
void SetReferenceImage(ReferenceImageType *referenceImage)
SpatialObject< 3 > MaskSpatialObjectType
Base class for filters that take an image as input and produce an image as output.
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
void SetGradientImage(GradientDirectionContainerType *, const GradientImagesType *image)
Control indentation during Print() invocation.
unsigned int m_NumberOfBaselineImages
TensorImageType OutputImageType
Superclass::OutputImageRegionType OutputImageRegionType
virtual void SetNthInput(DataObjectPointerArraySizeType num, DataObject *input)
vnl_vector_fixed< double, 3 > GradientDirectionType
#define itkConceptMacro(name, concept)
GradientImageTypeEnumeration
Represent a diffusion tensor as used in DTI images.
ImageToImageFilter< Image< TReferenceImagePixelType, 3 >, Image< DiffusionTensor3D< TTensorPixelType >, 3 > > Superclass
virtual ReferenceImageType * GetReferenceImage()
Templated n-dimensional image class.
GradientDirectionContainerType::Pointer m_GradientDirectionContainer
VectorContainer< unsigned int, GradientDirectionType > GradientDirectionContainerType
ReferencePixelType m_Threshold
unsigned int ThreadIdType
Superclass::InputImageType ReferenceImageType
void ThreadedGenerateData(const OutputImageRegionType &outputRegionForThread, ThreadIdType)