DMRITool  v0.1.1-139-g860d86b4
Diffusion MRI Tool
itkSphericalPolarFourierImageFilter.h
Go to the documentation of this file.
1 
18 #ifndef __itkSphericalPolarFourierImageFilter_h
19 #define __itkSphericalPolarFourierImageFilter_h
20 
23 
24 
25 namespace itk
26 {
27 
35 template < class TInputImage, class TOutputImage >
37 public SphericalPolarFourierEstimationImageFilter<TInputImage, TOutputImage>
38 {
39 public:
43  typedef SmartPointer<Self> Pointer;
44  typedef SmartPointer<const Self> ConstPointer;
45 
47  itkNewMacro(Self);
48 
51 
53 
54  typedef typename Superclass::MatrixType MatrixType;
55  typedef typename Superclass::VectorType VectorType;
56  typedef typename Superclass::MatrixPointer MatrixPointer;
58  typedef typename Superclass::STDVectorType STDVectorType;
60 
61  typedef typename Superclass::L2SolverType L2SolverType;
62  typedef typename Superclass::L1FISTASolverType L1FISTASolverType;
63  typedef typename Superclass::EstimationType EstimationType;
64 
66 
67  typedef typename Superclass::SamplingSchemeQSpacePointer SamplingSchemeQSpacePointer;
68  typedef typename Superclass::SamplingSchemeQSpaceType SamplingSchemeQSpaceType;
69 
70  itkGetMacro(Gn0, STDVectorPointer);
71 
72  std::vector<int> GetIndexNLM(const int index) const ITK_OVERRIDE;
73  int GetIndexJ(const int n, const int l, const int m) const ITK_OVERRIDE;
74 
75  std::vector<int> DimToRank(const int dimm) const ITK_OVERRIDE;
76  int RankToDim(const bool is_radial=false, const int radialRank=-1, const int shRank=-1) const ITK_OVERRIDE;
77 
78  double ComputeScale(const bool setScale=true) ITK_OVERRIDE;
79 
80  void ComputeRadialMatrix () ITK_OVERRIDE;
81  void ComputeBasisMatrix () ITK_OVERRIDE;
82  void ComputeRegularizationWeight ( ) ITK_OVERRIDE;
83 
84  void ComputeRadialVectorForE0InBasis ( );
85  void ComputeRadialVectorForE0InDWI ( );
86 
87  void SetBasisScale(const double scale) ITK_OVERRIDE;
88 
89 protected:
91  virtual ~SphericalPolarFourierImageFilter() {};
92 
93  void ComputeBasisMatrixForB0 ();
94 
95  // void VerifyInputParameters() const;
96 
97  void PrintSelf(std::ostream& os, Indent indent) const ITK_OVERRIDE;
98  typename LightObject::Pointer InternalClone() const ITK_OVERRIDE;
99 
100  void BeforeThreadedGenerateData () ITK_OVERRIDE;
101  void ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread,ThreadIdType threadId ) ITK_OVERRIDE;
102 
103  STDVectorPointer m_Gn0;
104  VectorPointer m_G0DWI;
105 
106 private:
107  SphericalPolarFourierImageFilter(const Self&); //purposely not implemented
108  void operator=(const Self&); //purposely not implemented
109 
110 };
111 
112 
113 }
114 
115 #if ITK_TEMPLATE_EXPLICIT
116 # include "Templates/itkSphericalPolarFourierImageFilter+-.h"
117 #endif
118 
119 #if !defined(ITK_MANUAL_INSTANTIATION) && !defined(__itkSphericalPolarFourierImageFilter_hxx)
121 #endif
122 
123 
124 #endif
Superclass::SamplingSchemeQSpacePointer SamplingSchemeQSpacePointer
#define itkTypedefMaskedImageToImageMacro(Superclass)
Definition: utlITKMacro.h:165
SphericalPolarFourierRadialGenerator< double > SPFGenerator
#define ITK_OVERRIDE
Definition: utlITKMacro.h:46
Superclass::SamplingSchemeQSpaceType SamplingSchemeQSpaceType
estimate the coeffcients of generalized Spherical Polar Fourier basis which can be separated into dif...
estimate the coeffcients of generalized Spherical Polar Fourier basis which can be separated into dif...
SphericalPolarFourierEstimationImageFilter< TInputImage, TOutputImage > Superclass