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"
122 template<
typename TReferenceImagePixelType,
123 typename TGradientImagePixelType = TReferenceImagePixelType,
124 typename TTensorPixelType = double,
125 typename TMaskImageType = Image<unsigned char, 3> >
128 Image< DiffusionTensor3D< TTensorPixelType >, 3 > >
209 itkExceptionMacro(<<
"Cannot call both methods:"
210 <<
"AddGradientImage and SetGradientImage. Please call only one of them.");
227 itkExceptionMacro(<<
"Gradient direction " << idx <<
"does not exist");
253 itkSetMacro(BValue, TTensorPixelType);
257 itkGetConstReferenceMacro(BValue, TTensorPixelType);
260 #ifdef ITK_USE_CONCEPT_CHECKING
334 #ifndef ITK_MANUAL_INSTANTIATION
335 #include "itkDiffusionTensor3DReconstructionImageFilter.hxx"
SmartPointer< const Self > ConstPointer
Light weight base class for most itk classes.
void ThreadedGenerateData(const OutputImageRegionType &outputRegionForThread, ThreadIdType) override
CoefficientMatrixType m_BMatrix
DiffusionTensor3DReconstructionImageFilter Self
void BeforeThreadedGenerateData() override
virtual GradientDirectionType GetGradientDirection(unsigned int idx) const
TensorBasisMatrixType m_TensorBasis
typedef(Concept::EqualityComparable< ReferencePixelType >) ReferenceEqualityComparableCheck
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)
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
void PrintSelf(std::ostream &os, Indent indent) const override
unsigned int ThreadIdType
DataObject * GetInput(const DataObjectIdentifierType &key)
Return an input.
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
Superclass::InputImageType ReferenceImageType