Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections > Class Template Reference

Extract ODF peaks by searching all local maxima on a densely sampled ODF und clustering these maxima to get the underlying fiber direction. NrOdfDirections: number of sampling points on the ODF surface (about 20000 is a good value) More...

#include <itkFiniteDiffOdfMaximaExtractionFilter.h>

Inheritance diagram for itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >:
Collaboration diagram for itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >:

Public Types

enum  Toolkit { FSL, MRTRIX }
 
enum  NormalizationMethods { NO_NORM, SINGLE_VEC_NORM, MAX_VEC_NORM }
 
typedef FiniteDiffOdfMaximaExtractionFilter Self
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef ImageToImageFilter< Image< Vector< PixelType,(ShOrder *ShOrder+ShOrder+2)/2+ShOrder >, 3 >, Image< Vector< PixelType, 3 >, 3 > > Superclass
 
typedef Superclass::InputImageType CoefficientImageType
 
typedef CoefficientImageType::RegionType CoefficientImageRegionType
 
typedef CoefficientImageType::PixelType CoefficientPixelType
 
typedef Superclass::OutputImageType OutputImageType
 
typedef Superclass::OutputImageRegionType OutputImageRegionType
 
typedef OrientationDistributionFunction< PixelType, NrOdfDirections > OdfType
 
typedef itk::Image< unsigned char, 3 > ItkUcharImgType
 
typedef vnl_vector_fixed< double, 3 > DirectionType
 
typedef Image< Vector< float, 3 >, 3 > ItkDirectionImage
 
typedef VectorContainer< unsigned int, ItkDirectionImage::Pointer > ItkDirectionImageContainer
 

Public Member Functions

Pointer Clone () const
 
virtual const char * GetClassName () const
 
virtual void SetMaxNumPeaks (unsigned int _arg)
 maximum number of peaks per voxel. if more peaks are detected, only the largest are kept. More...
 
virtual void SetPeakThreshold (double _arg)
 threshold on the peak length relative to the largest peak inside the current voxel More...
 
virtual void SetAbsolutePeakThreshold (double _arg)
 hard threshold on the peak length of all local maxima More...
 
virtual void SetClusteringThreshold (double _arg)
 directions closer together than the specified angular threshold will be clustered (in rad) More...
 
virtual void SetAngularThreshold (double _arg)
 directions closer together than the specified threshold that remain after clustering are discarded (largest is kept) (in rad) More...
 
virtual void SetMaskImage (ItkUcharImgType::Pointer _arg)
 only voxels inside the binary mask are processed More...
 
virtual void SetNormalizationMethod (NormalizationMethods _arg)
 normalization method of ODF peaks More...
 
virtual void SetFlipX (bool _arg)
 flip peaks in x direction More...
 
virtual void SetFlipY (bool _arg)
 flip peaks in y direction More...
 
virtual void SetFlipZ (bool _arg)
 flip peaks in z direction More...
 
virtual mitk::FiberBundle::Pointer GetOutputFiberBundle ()
 vector field (peak sizes rescaled for visualization purposes) More...
 
virtual ItkDirectionImageContainer::Pointer GetDirectionImageContainer ()
 container for output peaks More...
 
virtual ItkUcharImgType::Pointer GetNumDirectionsImage ()
 number of peaks per voxel More...
 
virtual void SetToolkit (Toolkit _arg)
 define SH coefficient convention (depends on toolkit) More...
 
virtual Toolkit GetToolkit ()
 SH coefficient convention (depends on toolkit) More...
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 FiniteDiffOdfMaximaExtractionFilter ()
 
 ~FiniteDiffOdfMaximaExtractionFilter ()
 
void BeforeThreadedGenerateData ()
 
void ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadID)
 
void AfterThreadedGenerateData ()
 
void FindCandidatePeaks (OdfType &odf, double odfMax, std::vector< DirectionType > &inDirs)
 
std::vector< DirectionTypeMeanShiftClustering (std::vector< DirectionType > &inDirs)
 
void Cart2Sph (const std::vector< DirectionType > &dir, vnl_matrix< double > &sphCoords)
 
vnl_matrix< double > CalcShBasis (vnl_matrix< double > &sphCoords)
 

Detailed Description

template<class PixelType, int ShOrder, int NrOdfDirections>
class itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >

Extract ODF peaks by searching all local maxima on a densely sampled ODF und clustering these maxima to get the underlying fiber direction. NrOdfDirections: number of sampling points on the ODF surface (about 20000 is a good value)

Definition at line 37 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

Member Typedef Documentation

template<class PixelType , int ShOrder, int NrOdfDirections>
typedef CoefficientImageType::RegionType itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::CoefficientImageRegionType

Definition at line 69 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

template<class PixelType , int ShOrder, int NrOdfDirections>
typedef Superclass::InputImageType itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::CoefficientImageType

Definition at line 68 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

template<class PixelType , int ShOrder, int NrOdfDirections>
typedef CoefficientImageType::PixelType itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::CoefficientPixelType

Definition at line 70 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

template<class PixelType , int ShOrder, int NrOdfDirections>
typedef SmartPointer<const Self> itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::ConstPointer

Definition at line 57 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

template<class PixelType , int ShOrder, int NrOdfDirections>
typedef vnl_vector_fixed< double, 3 > itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::DirectionType

Definition at line 78 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

template<class PixelType , int ShOrder, int NrOdfDirections>
typedef Image< Vector< float, 3 >, 3> itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::ItkDirectionImage

Definition at line 79 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

template<class PixelType , int ShOrder, int NrOdfDirections>
typedef VectorContainer< unsigned int, ItkDirectionImage::Pointer > itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::ItkDirectionImageContainer

Definition at line 80 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

template<class PixelType , int ShOrder, int NrOdfDirections>
typedef itk::Image<unsigned char, 3> itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::ItkUcharImgType

Definition at line 76 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

template<class PixelType , int ShOrder, int NrOdfDirections>
typedef OrientationDistributionFunction<PixelType, NrOdfDirections> itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::OdfType

Definition at line 75 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

template<class PixelType , int ShOrder, int NrOdfDirections>
typedef Superclass::OutputImageRegionType itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::OutputImageRegionType

Definition at line 73 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

template<class PixelType , int ShOrder, int NrOdfDirections>
typedef Superclass::OutputImageType itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::OutputImageType

Definition at line 72 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

template<class PixelType , int ShOrder, int NrOdfDirections>
typedef SmartPointer<Self> itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::Pointer

Definition at line 56 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

template<class PixelType , int ShOrder, int NrOdfDirections>
typedef FiniteDiffOdfMaximaExtractionFilter itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::Self

Definition at line 55 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

template<class PixelType , int ShOrder, int NrOdfDirections>
typedef ImageToImageFilter< Image< Vector< PixelType, (ShOrder*ShOrder + ShOrder + 2)/2 + ShOrder >, 3 >, Image< Vector< PixelType, 3 >, 3 > > itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::Superclass

Definition at line 59 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

Member Enumeration Documentation

template<class PixelType , int ShOrder, int NrOdfDirections>
enum itk::FiniteDiffOdfMaximaExtractionFilter::NormalizationMethods
Enumerator
NO_NORM 

no length normalization of the output peaks

SINGLE_VEC_NORM 

normalize the single peaks to length 1

MAX_VEC_NORM 

normalize all peaks according to their length in comparison to the largest peak (0-1)

Definition at line 49 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

template<class PixelType , int ShOrder, int NrOdfDirections>
enum itk::FiniteDiffOdfMaximaExtractionFilter::Toolkit
Enumerator
FSL 

SH coefficient convention (depends on toolkit)

MRTRIX 

Definition at line 44 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

Constructor & Destructor Documentation

template<class PixelType , int ShOrder, int NrOdfDirections>
itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::FiniteDiffOdfMaximaExtractionFilter ( )
protected

Definition at line 49 of file itkFiniteDiffOdfMaximaExtractionFilter.cpp.

template<class PixelType , int ShOrder, int NrOdfDirections>
itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::~FiniteDiffOdfMaximaExtractionFilter ( )
inlineprotected

Definition at line 104 of file itkFiniteDiffOdfMaximaExtractionFilter.h.

Member Function Documentation

template<class PixelType , int ShOrder, int NrOdfDirections>
void itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::AfterThreadedGenerateData ( )
protected

Definition at line 251 of file itkFiniteDiffOdfMaximaExtractionFilter.cpp.

References MITK_INFO, and mitk::New().

template<class PixelType , int ShOrder, int NrOdfDirections>
void itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::BeforeThreadedGenerateData ( )
protected
template<class PixelType , int ShOrder, int NrOdfDirections>
vnl_matrix< double > itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::CalcShBasis ( vnl_matrix< double > &  sphCoords)
protected

Calculate spherical harmonic basis of the defined order

Definition at line 481 of file itkFiniteDiffOdfMaximaExtractionFilter.cpp.

References M_PI.

template<class PixelType , int ShOrder, int NrOdfDirections>
void itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::Cart2Sph ( const std::vector< DirectionType > &  dir,
vnl_matrix< double > &  sphCoords 
)
protected

Convert cartesian to spherical coordinates

Definition at line 457 of file itkFiniteDiffOdfMaximaExtractionFilter.cpp.

References M_PI.

template<class PixelType , int ShOrder, int NrOdfDirections>
Pointer itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::Clone ( ) const
template<class PixelType , int ShOrder, int NrOdfDirections>
void itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::FindCandidatePeaks ( OdfType odf,
double  odfMax,
std::vector< DirectionType > &  inDirs 
)
protected
template<class PixelType , int ShOrder, int NrOdfDirections>
virtual const char* itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::GetClassName ( ) const
virtual

Runtime information support.

template<class PixelType , int ShOrder, int NrOdfDirections>
virtual ItkDirectionImageContainer::Pointer itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::GetDirectionImageContainer ( )
virtual

container for output peaks

template<class PixelType , int ShOrder, int NrOdfDirections>
virtual ItkUcharImgType::Pointer itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::GetNumDirectionsImage ( )
virtual

number of peaks per voxel

template<class PixelType , int ShOrder, int NrOdfDirections>
virtual mitk::FiberBundle::Pointer itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::GetOutputFiberBundle ( )
virtual

vector field (peak sizes rescaled for visualization purposes)

template<class PixelType , int ShOrder, int NrOdfDirections>
virtual Toolkit itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::GetToolkit ( )
virtual

SH coefficient convention (depends on toolkit)

template<class PixelType , int ShOrder, int NrOdfDirections>
std::vector< vnl_vector_fixed< double, 3 > > itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::MeanShiftClustering ( std::vector< DirectionType > &  inDirs)
protected

Cluster input directions within a certain angular threshold

Definition at line 99 of file itkFiniteDiffOdfMaximaExtractionFilter.cpp.

template<class PixelType , int ShOrder, int NrOdfDirections>
static Pointer itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::New ( )
static

Method for creation through the object factory.

template<class PixelType , int ShOrder, int NrOdfDirections>
virtual void itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::SetAbsolutePeakThreshold ( double  _arg)
virtual

hard threshold on the peak length of all local maxima

template<class PixelType , int ShOrder, int NrOdfDirections>
virtual void itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::SetAngularThreshold ( double  _arg)
virtual

directions closer together than the specified threshold that remain after clustering are discarded (largest is kept) (in rad)

template<class PixelType , int ShOrder, int NrOdfDirections>
virtual void itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::SetClusteringThreshold ( double  _arg)
virtual

directions closer together than the specified angular threshold will be clustered (in rad)

template<class PixelType , int ShOrder, int NrOdfDirections>
virtual void itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::SetFlipX ( bool  _arg)
virtual

flip peaks in x direction

template<class PixelType , int ShOrder, int NrOdfDirections>
virtual void itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::SetFlipY ( bool  _arg)
virtual

flip peaks in y direction

template<class PixelType , int ShOrder, int NrOdfDirections>
virtual void itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::SetFlipZ ( bool  _arg)
virtual

flip peaks in z direction

template<class PixelType , int ShOrder, int NrOdfDirections>
virtual void itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::SetMaskImage ( ItkUcharImgType::Pointer  _arg)
virtual

only voxels inside the binary mask are processed

template<class PixelType , int ShOrder, int NrOdfDirections>
virtual void itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::SetMaxNumPeaks ( unsigned int  _arg)
virtual

maximum number of peaks per voxel. if more peaks are detected, only the largest are kept.

template<class PixelType , int ShOrder, int NrOdfDirections>
virtual void itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::SetNormalizationMethod ( NormalizationMethods  _arg)
virtual

normalization method of ODF peaks

template<class PixelType , int ShOrder, int NrOdfDirections>
virtual void itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::SetPeakThreshold ( double  _arg)
virtual

threshold on the peak length relative to the largest peak inside the current voxel

template<class PixelType , int ShOrder, int NrOdfDirections>
virtual void itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::SetToolkit ( Toolkit  _arg)
virtual

define SH coefficient convention (depends on toolkit)

template<class PixelType , int ShOrder, int NrOdfDirections>
void itk::FiniteDiffOdfMaximaExtractionFilter< PixelType, ShOrder, NrOdfDirections >::ThreadedGenerateData ( const OutputImageRegionType outputRegionForThread,
ThreadIdType  threadID 
)
protected

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