DMRITool  v0.1.1-139-g860d86b4
Diffusion MRI Tool
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
itk::SamplingSchemeQSpace< TPixelType > Class Template Reference

#include <itkSamplingSchemeQSpace.h>

+ Inheritance diagram for itk::SamplingSchemeQSpace< TPixelType >:
+ Collaboration diagram for itk::SamplingSchemeQSpace< TPixelType >:

Detailed Description

template<class TPixelType = double>
class itk::SamplingSchemeQSpace< TPixelType >

this class describes sampling in Q space.

The sampling in Q space can be single shell sampling or multiple shell sampling, which is determined by m_IndicesInShells.

Author
Jian Cheng

Definition at line 38 of file itkSamplingSchemeQSpace.h.

Public Types

typedef SmartPointer< const SelfConstPointer
 
typedef Superclass::Index2DVectorPointer Index2DVectorPointer
 
typedef Superclass::Index2DVectorType Index2DVectorType
 
typedef Superclass::IndexVectorType IndexVectorType
 
typedef SmartPointer< SelfPointer
 
typedef SamplingSchemeQSpace Self
 
typedef Superclass::STDVectorPointer STDVectorPointer
 
typedef Superclass::STDVectorType STDVectorType
 
typedef SamplingScheme3D< TPixelType > Superclass
 
- Public Types inherited from itk::SamplingScheme3D< TPixelType >
typedef SmartPointer< const SelfConstPointer
 
typedef utl_shared_ptr< Index2DVectorTypeIndex2DVectorPointer
 
typedef std::vector< IndexVectorTypeIndex2DVectorType
 
typedef std::vector< int > IndexVectorType
 
typedef utl_shared_ptr< MatrixTypeMatrixPointer
 
typedef utl::NDArray< double, 2 > MatrixType
 
typedef SmartPointer< SelfPointer
 
typedef VectorContainer< IdentifierType, Point< TPixelType, 3 > > PointsContainer
 
typedef PointsContainer::ConstIterator PointsContainerConstIterator
 
typedef PointsContainer::ConstPointer PointsContainerConstPointer
 
typedef PointsContainer::Iterator PointsContainerIterator
 
typedef PointsContainer::Pointer PointsContainerPointer
 
typedef Point< TPixelType, 3 > PointType
 
typedef SamplingScheme3D Self
 
typedef utl_shared_ptr< STDVectorTypeSTDVectorPointer
 
typedef std::vector< double > STDVectorType
 
typedef VectorContainer< IdentifierType, Point< TPixelType, 3 > > Superclass
 
typedef TPixelType ValueType
 

Public Member Functions

void Clear ()
 
void ConvertBVectorToQVector ()
 
void ConvertQVectorToBVector ()
 
void CorrectBValues ()
 
void CorrectRadiusValues () ITK_OVERRIDE
 
virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual double GetBThresholdSingleShell ()
 
virtual STDVectorPointer GetBVector ()
 
STDVectorPointer GetBVectorInShell (unsigned int shellIndex)
 
virtual const char * GetNameOfClass () const
 
std::vector< STDVectorTypeGroupBValues ()
 
void RemoveSamplesNotIndexed ()
 
virtual void SetBThresholdSingleShell (double _arg)
 
void SetBVector (const STDVectorPointer bVec)
 
void SetSamplingScheme3D (typename Superclass::Pointer scheme3D)
 
- Public Member Functions inherited from itk::SamplingScheme3D< TPixelType >
void AppendOrientation (const double x, const double y, const double z, const int shell=-1)
 
void AppendOrientation (const PointType &point, const int shell=-1)
 
void AppendOrientationAndRadiusValue (const double x, const double y, const double z, const double radius, const int shell=-1)
 
double CalculateElectrostaticEnergy (const double order=2.0, const bool isNormalize=true, const bool countHalf=true) const
 
double CalculateElectrostaticEnergyInShell (const unsigned int shellIndex, const double order=2.0, const bool isNormalize=true, const bool countHalf=true) const
 
MatrixPointer CalculateElectrostaticEnergyMatrix (const double order=2.0) const
 
MatrixPointer CalculateInnerProductMatrix (const bool isAbsolute=true) const
 
double CalculateMaxDot (const unsigned int index, const bool isSymmetric=true) const
 
double CalculateMaxDotInShell (const unsigned int sampleIndex, const unsigned int shellIndex, const bool isSymmetric=true) const
 
double CalculateMinDistance (const unsigned int index, const bool isSymmetric=true) const
 
STDVectorType CalculateMinDistance (const bool isSymmetric=true) const
 
double CalculateMinDistanceInShell (const unsigned int sampleIndex, const unsigned int shellIndex, const bool isSymmetric=true) const
 
STDVectorType CalculateMinDistanceInShell (const unsigned int shellIndex, const bool isSymmetric=true) const
 
double CalculatePackingDensity (const bool isSymmetric=true) const
 
double CalculatePackingDensityInShell (const unsigned int shellIndex, const bool isSymmetric=true) const
 
double CalculateSphericalCodeEntropy (const bool isSymmetric=true) const
 
double CalculateSphericalCodeEntropyInShell (const unsigned int shellIndex, const bool isSymmetric=true) const
 
double CalculateVoronoiEntropy (const int tess=7, const bool isSymmetric=true)
 
double CalculateVoronoiEntropyInShell (const unsigned int shellIndex, const int tess=7, const bool isSymmetric=true)
 
void Clear ()
 
virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
void GenerateFromRandomPoints (const std::vector< int > &numberOfPoints)
 
virtual double GetDeltaBig ()
 
virtual double GetDeltaSmall ()
 
virtual Index2DVectorPointer GetIndicesInShells ()
 
unsigned int GetNumberOfSamples () const
 
IndexVectorType GetNumberOfSamplesAtEachShell () const
 
unsigned int GetNumberOfSamplesInShell (const unsigned int shellIndex) const
 
unsigned int GetNumberOfShells () const
 
void GetNumbers (int &numberUniqueSamples, int &numberAntipodalSamples, int &numberRepeatedSamples) const
 
PointType GetOrientation (unsigned int index)
 
MatrixPointer GetOrientationsCartesian (const bool alwarysReCalculate=false)
 
MatrixPointer GetOrientationsCartesianInShell (const unsigned int shellIndex) const
 
MatrixPointer GetOrientationsSpherical (const bool alwarysReCalculate=false)
 
MatrixPointer GetOrientationsSphericalInShell (const unsigned int shellIndex)
 
virtual double GetRadiusThresholdSingleShell ()
 
double GetRadiusValue (unsigned int index)
 
virtual STDVectorPointer GetRadiusVector ()
 
STDVectorPointer GetRadiusVectorInShell (unsigned int shellIndex)
 
virtual double GetTau ()
 
std::vector< STDVectorTypeGroupRadiusValues ()
 
void NormalizeDirections ()
 
void ReadOrientationFile (const std::string &gradFile, const int NoSymmetricDuple=DIRECTION_NODUPLICATE, const int flipx=DIRECTION_NOFLIP, const int flipy=DIRECTION_NOFLIP, const int flipz=DIRECTION_NOFLIP, const bool need_normalize=true)
 
void ReadOrientationFileList (const std::vector< std::string > &gradFileVec, const int NoSymmetricDuple=DIRECTION_NODUPLICATE, const int flipx=DIRECTION_NOFLIP, const int flipy=DIRECTION_NOFLIP, const int flipz=DIRECTION_NOFLIP, const bool need_normalize=true)
 
void RemoveSamplesNotIndexed ()
 
virtual void SetDeltaBig (double _arg)
 
virtual void SetDeltaSmall (double _arg)
 
virtual void SetIndicesInShells (Index2DVectorPointer _arg)
 
void SetOrientationsCartesian (const MatrixPointer mat)
 
void SetOrientationsSpherical (const MatrixPointer mat)
 
virtual void SetRadiusThresholdSingleShell (double _arg)
 
void SetRadiusVector (const STDVectorPointer radiusVec)
 
virtual void SetTau (double _arg)
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::SamplingScheme3D< TPixelType >
static double CalculateMinDistanceUpperBound (const unsigned int numberOfPoints, const bool isSphericalDistance=true)
 
static double CalculateVoronoiEntropy (const MatrixType &grad, const MatrixType &gradTess, const bool isSymmetric=true)
 
static Pointer New ()
 

Protected Member Functions

LightObject::Pointer InternalClone () const ITK_OVERRIDE
 
void PrintSelf (std::ostream &os, Indent indent) const ITK_OVERRIDE
 
 SamplingSchemeQSpace ()
 
virtual ~SamplingSchemeQSpace ()
 
- Protected Member Functions inherited from itk::SamplingScheme3D< TPixelType >
LightObject::Pointer InternalClone () const ITK_OVERRIDE
 
void PrintSelf (std::ostream &os, Indent indent) const ITK_OVERRIDE
 
 SamplingScheme3D ()
 
virtual ~SamplingScheme3D ()
 

Protected Attributes

double m_BThresholdSingleShell
 
STDVectorPointer m_BVector
 
- Protected Attributes inherited from itk::SamplingScheme3D< TPixelType >
double m_DeltaBig
 
double m_DeltaSmall
 
Index2DVectorPointer m_IndicesInShells
 
MatrixPointer m_OrientationsCartesian
 
MatrixPointer m_OrientationsSpherical
 
double m_RadiusThresholdSingleShell
 
STDVectorPointer m_RadiusVector
 
double m_Tau
 

Private Member Functions

void operator= (const Self &)
 
 SamplingSchemeQSpace (const Self &)
 

Member Typedef Documentation

template<class TPixelType = double>
typedef SmartPointer<const Self> itk::SamplingSchemeQSpace< TPixelType >::ConstPointer

Definition at line 45 of file itkSamplingSchemeQSpace.h.

template<class TPixelType = double>
typedef Superclass::Index2DVectorPointer itk::SamplingSchemeQSpace< TPixelType >::Index2DVectorPointer

Definition at line 57 of file itkSamplingSchemeQSpace.h.

template<class TPixelType = double>
typedef Superclass::Index2DVectorType itk::SamplingSchemeQSpace< TPixelType >::Index2DVectorType

Definition at line 56 of file itkSamplingSchemeQSpace.h.

template<class TPixelType = double>
typedef Superclass::IndexVectorType itk::SamplingSchemeQSpace< TPixelType >::IndexVectorType

Definition at line 55 of file itkSamplingSchemeQSpace.h.

template<class TPixelType = double>
typedef SmartPointer<Self> itk::SamplingSchemeQSpace< TPixelType >::Pointer

Definition at line 44 of file itkSamplingSchemeQSpace.h.

template<class TPixelType = double>
typedef SamplingSchemeQSpace itk::SamplingSchemeQSpace< TPixelType >::Self

Standard class typedefs.

Definition at line 42 of file itkSamplingSchemeQSpace.h.

template<class TPixelType = double>
typedef Superclass::STDVectorPointer itk::SamplingSchemeQSpace< TPixelType >::STDVectorPointer

Definition at line 54 of file itkSamplingSchemeQSpace.h.

template<class TPixelType = double>
typedef Superclass::STDVectorType itk::SamplingSchemeQSpace< TPixelType >::STDVectorType

Definition at line 51 of file itkSamplingSchemeQSpace.h.

template<class TPixelType = double>
typedef SamplingScheme3D<TPixelType> itk::SamplingSchemeQSpace< TPixelType >::Superclass

Definition at line 43 of file itkSamplingSchemeQSpace.h.

Constructor & Destructor Documentation

template<class TPixelType >
itk::SamplingSchemeQSpace< TPixelType >::SamplingSchemeQSpace ( )
protected

Definition at line 28 of file itkSamplingSchemeQSpace.hxx.

References itk::SamplingSchemeQSpace< TPixelType >::InternalClone().

+ Here is the call graph for this function:

template<class TPixelType = double>
virtual itk::SamplingSchemeQSpace< TPixelType >::~SamplingSchemeQSpace ( )
inlineprotectedvirtual

Definition at line 85 of file itkSamplingSchemeQSpace.h.

References ITK_OVERRIDE.

template<class TPixelType = double>
itk::SamplingSchemeQSpace< TPixelType >::SamplingSchemeQSpace ( const Self )
private

Member Function Documentation

template<class TPixelType >
void itk::SamplingSchemeQSpace< TPixelType >::Clear ( )

Definition at line 117 of file itkSamplingSchemeQSpace.hxx.

References itk::SamplingSchemeQSpace< TPixelType >::ConvertBVectorToQVector().

Referenced by itk::SamplingSchemeQSpace< TPixelType >::SetSamplingScheme3D().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
void itk::SamplingSchemeQSpace< TPixelType >::ConvertBVectorToQVector ( )

Definition at line 127 of file itkSamplingSchemeQSpace.hxx.

References itk::SamplingSchemeQSpace< TPixelType >::ConvertQVectorToBVector(), and M_PI.

Referenced by itk::SamplingSchemeQSpace< TPixelType >::Clear().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
void itk::SamplingSchemeQSpace< TPixelType >::ConvertQVectorToBVector ( )

Definition at line 141 of file itkSamplingSchemeQSpace.hxx.

References itk::SamplingSchemeQSpace< TPixelType >::GroupBValues(), and M_PI.

Referenced by itk::SamplingSchemeQSpace< TPixelType >::ConvertBVectorToQVector().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
void itk::SamplingSchemeQSpace< TPixelType >::CorrectBValues ( )

Definition at line 220 of file itkSamplingSchemeQSpace.hxx.

References itk::SamplingSchemeQSpace< TPixelType >::CorrectRadiusValues(), and utlGlobalException.

Referenced by itk::SamplingSchemeQSpace< TPixelType >::GroupBValues().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
void itk::SamplingSchemeQSpace< TPixelType >::CorrectRadiusValues ( )
virtual

Reimplemented from itk::SamplingScheme3D< TPixelType >.

Definition at line 245 of file itkSamplingSchemeQSpace.hxx.

References itk::SamplingSchemeQSpace< TPixelType >::RemoveSamplesNotIndexed(), and utlGlobalException.

Referenced by itk::SamplingSchemeQSpace< TPixelType >::CorrectBValues().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType = double>
virtual::itk::LightObject::Pointer itk::SamplingSchemeQSpace< TPixelType >::CreateAnother ( void  ) const
template<class TPixelType = double>
virtual double itk::SamplingSchemeQSpace< TPixelType >::GetBThresholdSingleShell ( )
virtual
template<class TPixelType = double>
virtual STDVectorPointer itk::SamplingSchemeQSpace< TPixelType >::GetBVector ( )
virtual
template<class TPixelType >
SamplingSchemeQSpace< TPixelType >::STDVectorPointer itk::SamplingSchemeQSpace< TPixelType >::GetBVectorInShell ( unsigned int  shellIndex)

Definition at line 80 of file itkSamplingSchemeQSpace.hxx.

References itk::SamplingSchemeQSpace< TPixelType >::SetSamplingScheme3D().

Referenced by itk::SamplingSchemeQSpace< TPixelType >::SetBVector().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType = double>
virtual const char* itk::SamplingSchemeQSpace< TPixelType >::GetNameOfClass ( ) const
virtual

Standard part of every itk Object.

Reimplemented from itk::SamplingScheme3D< TPixelType >.

template<class TPixelType >
std::vector< typename SamplingSchemeQSpace< TPixelType >::STDVectorType > itk::SamplingSchemeQSpace< TPixelType >::GroupBValues ( )

Definition at line 153 of file itkSamplingSchemeQSpace.hxx.

References itk::SamplingSchemeQSpace< TPixelType >::CorrectBValues(), and utlSAGlobalException.

Referenced by itk::SamplingSchemeQSpace< TPixelType >::ConvertQVectorToBVector().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
LightObject::Pointer itk::SamplingSchemeQSpace< TPixelType >::InternalClone ( ) const
protected

Definition at line 37 of file itkSamplingSchemeQSpace.hxx.

References itk::SamplingSchemeQSpace< TPixelType >::PrintSelf().

Referenced by itk::SamplingSchemeQSpace< TPixelType >::SamplingSchemeQSpace().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType = double>
static Pointer itk::SamplingSchemeQSpace< TPixelType >::New ( )
static

Method for creation through the object factory.

template<class TPixelType = double>
void itk::SamplingSchemeQSpace< TPixelType >::operator= ( const Self )
private
template<class TPixelType >
void itk::SamplingSchemeQSpace< TPixelType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protected

Definition at line 56 of file itkSamplingSchemeQSpace.hxx.

References utl::PrintVector(), and itk::SamplingSchemeQSpace< TPixelType >::SetBVector().

Referenced by itk::SamplingSchemeQSpace< TPixelType >::InternalClone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
void itk::SamplingSchemeQSpace< TPixelType >::RemoveSamplesNotIndexed ( )

remove samples not in m_IndicesInShells

Definition at line 257 of file itkSamplingSchemeQSpace.hxx.

References utlGlobalException.

Referenced by itk::SamplingSchemeQSpace< TPixelType >::CorrectRadiusValues().

+ Here is the caller graph for this function:

template<class TPixelType = double>
virtual void itk::SamplingSchemeQSpace< TPixelType >::SetBThresholdSingleShell ( double  _arg)
virtual
template<class TPixelType >
void itk::SamplingSchemeQSpace< TPixelType >::SetBVector ( const STDVectorPointer  bVec)

Definition at line 65 of file itkSamplingSchemeQSpace.hxx.

References itk::SamplingSchemeQSpace< TPixelType >::GetBVectorInShell().

Referenced by itk::SamplingSchemeQSpace< TPixelType >::PrintSelf().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class TPixelType >
void itk::SamplingSchemeQSpace< TPixelType >::SetSamplingScheme3D ( typename Superclass::Pointer  scheme3D)

Definition at line 98 of file itkSamplingSchemeQSpace.hxx.

References itk::SamplingSchemeQSpace< TPixelType >::Clear().

Referenced by itk::SamplingSchemeQSpace< TPixelType >::GetBVectorInShell().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

template<class TPixelType = double>
double itk::SamplingSchemeQSpace< TPixelType >::m_BThresholdSingleShell
protected

b values whose distance is smallter the threshold will be considered in the same shell, and they will be replaced as their mean b value.

Definition at line 95 of file itkSamplingSchemeQSpace.h.

template<class TPixelType = double>
STDVectorPointer itk::SamplingSchemeQSpace< TPixelType >::m_BVector
protected

Definition at line 97 of file itkSamplingSchemeQSpace.h.


The documentation for this class was generated from the following files: