18 #ifndef __itkBasisMatrixGenerator_h 19 #define __itkBasisMatrixGenerator_h 21 #include "itkObject.h" 22 #include <vnl/vnl_matrix.h> 23 #include <vnl/vnl_vector.h> 39 template <
typename TElement =
double>
72 itkSetObjectMacro(SamplingSchemeRSpace, SamplingSchemeRSpaceType);
73 itkGetObjectMacro(SamplingSchemeRSpace, SamplingSchemeRSpaceType);
84 itkGetMacro(QBasisMatrixForDWI, MatrixPointer);
87 itkGetMacro(RBasisMatrixForEAP, MatrixPointer);
88 itkGetMacro(RBasisMatrixForODF, MatrixPointer);
90 itkSetMacro(MD0,
double);
91 itkGetMacro(MD0,
double);
92 itkSetMacro(ODFOrder,
int);
93 itkGetMacro(ODFOrder,
int);
95 itkSetMacro(OutputType, OutputType);
96 itkGetMacro(OutputType, OutputType);
102 virtual void Flip(
const int flipx,
const int flipy,
const int flipz)
118 return m_OutputType==DWI? m_SamplingSchemeQSpace->GetNumberOfSamples() : m_SamplingSchemeRSpace->GetNumberOfSamples();
127 if (m_OutputType==DWI)
128 mat = m_QBasisMatrixForDWI;
129 else if (m_OutputType==EAP)
130 mat = m_RBasisMatrixForEAP;
131 else if (m_OutputType==ODF)
132 mat = m_RBasisMatrixForODF;
141 virtual void VerifyInputParameters()
const;
143 void PrintSelf(std::ostream& os, Indent indent)
const ITK_OVERRIDE;
144 typename LightObject::Pointer InternalClone()
const ITK_OVERRIDE;
167 void operator=(
const Self&);
174 #define ITK_TEMPLATE_BasisMatrixGenerator(_, EXPORT, x, y) namespace itk { \ 175 _(2(class EXPORT BasisMatrixGenerator< ITK_TEMPLATE_2 x >)) \ 176 namespace Templates { typedef BasisMatrixGenerator< ITK_TEMPLATE_2 x > BasisMatrixGenerator##y; } \ 179 #if ITK_TEMPLATE_EXPLICIT 180 # include "Templates/itkBasisMatrixGenerator+-.h" 183 #if !defined(ITK_MANUAL_INSTANTIATION) && !defined(__itkBasisMatrixGenerator_hxx) MatrixPointer m_QBasisMatrixForDWI
BasisMatrixGenerator Self
SamplingScheme3D< double > SamplingSchemeRSpaceType
std::vector< double > STDVectorType
virtual ~BasisMatrixGenerator()
virtual int GetNumberOfBasis() const
utl::NDArray< double, 2 > MatrixType
utl_shared_ptr< VectorType > VectorPointer
SamplingSchemeRSpacePointer m_SamplingSchemeRSpace
utl_shared_ptr< STDVectorType > STDVectorPointer
virtual MatrixPointer GetBasisMatrix() const
utl::NDArray< double, 1 > VectorType
utl_shared_ptr< MatrixType > MatrixPointer
SmartPointer< const Self > ConstPointer
this class describes sampling in a 3D space (Q space or R space).
virtual int GetNumberOfSamples() const
virtual void Flip(const int flipx, const int flipy, const int flipz)
this class describes sampling in Q space.
SmartPointer< Self > Pointer
SamplingSchemeQSpace< double > SamplingSchemeQSpaceType
SmartPointer< Self > Pointer
SamplingSchemeQSpacePointer m_SamplingSchemeQSpace
MatrixPointer m_RBasisMatrixForEAP
SamplingSchemeRSpaceType::Pointer SamplingSchemeRSpacePointer
SamplingSchemeQSpaceType::Pointer SamplingSchemeQSpacePointer
virtual void ComputeBasisMatrix()
SmartPointer< Self > Pointer
MatrixPointer m_RBasisMatrixForODF