17 #ifndef __itkFiniteDiffOdfMaximaExtractionFilter_h_
18 #define __itkFiniteDiffOdfMaximaExtractionFilter_h_
20 #include "itkImageToImageFilter.h"
21 #include "vnl/vnl_vector_fixed.h"
22 #include "vnl/vnl_matrix.h"
23 #include "vnl/algo/vnl_svd.h"
24 #include "itkVectorContainer.h"
25 #include "itkVectorImage.h"
36 template<
class PixelType,
int ShOrder,
int NrOdfDirections >
38 public ImageToImageFilter< Image< Vector< PixelType, (ShOrder*ShOrder + ShOrder + 2)/2 + ShOrder >, 3 >,
39 Image< Vector< PixelType, 3 >, 3 > >
58 typedef ImageToImageFilter<
Image< Vector<
PixelType, (ShOrder*ShOrder + ShOrder + 2)/2 + ShOrder >, 3 >,
62 itkFactorylessNewMacro(Self)
83 itkSetMacro( MaxNumPeaks,
unsigned int)
84 itkSetMacro( PeakThreshold,
double)
85 itkSetMacro( AbsolutePeakThreshold,
double)
86 itkSetMacro( ClusteringThreshold,
double)
87 itkSetMacro( AngularThreshold,
double)
88 itkSetMacro( MaskImage, ItkUcharImgType::Pointer)
90 itkSetMacro( FlipX,
bool)
91 itkSetMacro( FlipY,
bool)
92 itkSetMacro( FlipZ,
bool)
95 itkGetMacro( OutputFiberBundle,
mitk::FiberBundle::Pointer)
96 itkGetMacro( DirectionImageContainer, ItkDirectionImageContainer::Pointer)
97 itkGetMacro( NumDirectionsImage, ItkUcharImgType::Pointer)
100 itkGetMacro( Toolkit, Toolkit)
103 FiniteDiffOdfMaximaExtractionFilter();
104 ~FiniteDiffOdfMaximaExtractionFilter(){}
117 void Cart2Sph(
const std::vector< DirectionType >& dir, vnl_matrix<double>& sphCoords);
120 vnl_matrix<double>
CalcShBasis(vnl_matrix<double>& sphCoords);
125 unsigned int m_MaxNumPeaks;
126 double m_PeakThreshold;
127 double m_AbsolutePeakThreshold;
128 vnl_matrix< double > m_ShBasis;
129 double m_ClusteringThreshold;
130 double m_AngularThreshold;
131 const int m_NumCoeffs;
146 #ifndef ITK_MANUAL_INSTANTIATION
150 #endif //__itkFiniteDiffOdfMaximaExtractionFilter_h_
itk::SmartPointer< Self > Pointer
DataCollection - Class to facilitate loading/accessing structured data.
Represents an ODF for Q-Ball imaging.
itk::Image< double, 3 > InputImageType