DMRITool  v0.1.1-139-g860d86b4
Diffusion MRI Tool
itkFeaturesFromSPFImageFilter.h
Go to the documentation of this file.
1 
19 #ifndef __itkFeaturesFromSPFImageFilter_h
20 #define __itkFeaturesFromSPFImageFilter_h
21 
22 #include "itkObject.h"
25 
26 namespace itk
27 {
28 
39 template < class TInputImage, class TOutputImage >
40 class ITK_EXPORT FeaturesFromSPFImageFilter :
41  public MaskedImageToImageFilter<TInputImage, TOutputImage>
42 {
43 public:
47  typedef SmartPointer<Self> Pointer;
48  typedef SmartPointer<const Self> ConstPointer;
49 
51  itkNewMacro(Self);
52 
55 
57 
59  typedef utl_shared_ptr<MatrixType> MatrixPointer;
61  typedef utl_shared_ptr<VectorType> VectorPointer;
62  typedef std::vector<double> STDVectorType;
63  typedef utl_shared_ptr<STDVectorType > STDVectorPointer;
64 
66 
67  typedef enum
68  {
69  SPF=0,
70  DSPF
71  } BasisType;
72 
73  itkSetMacro(SHRank, int);
74  itkGetMacro(SHRank, int);
75  itkSetMacro(RadialRank, int);
76  itkGetMacro(RadialRank, int);
77 
78  itkSetMacro(Tau, double);
79  itkGetMacro(Tau, double);
80  itkSetMacro(MD0, double);
81  itkGetMacro(MD0, double);
82 
83  itkSetMacro(BasisType, BasisType);
84  itkGetMacro(BasisType, BasisType);
85 
86  itkSetMacro(Orientations, MatrixPointer);
87  itkGetMacro(Orientations, MatrixPointer);
88 
89  double ComputeScale(const bool setScale=true);
90 
91  virtual void SetBasisScale(const double scale);
92  itkGetMacro(BasisScale, double);
93 
95  void SetScaleImage(const ScalarImagePointer& scaleImage);
96  // itkSetObjectMacro(ScaleImage, ScalarImageType);
97  itkGetObjectMacro(ScaleImage, ScalarImageType);
98  itkGetConstObjectMacro(ScaleImage, ScalarImageType);
99 
100  itkSetMacro(IsInQSpace,bool);
101  itkGetMacro(IsInQSpace,bool);
102  itkBooleanMacro(IsInQSpace);
103 
105  itkSetMacro(IsFourier,bool);
106  itkGetMacro(IsFourier,bool);
107  itkBooleanMacro(IsFourier);
108 
109 
110  itkGetMacro(SPFToFeatureTransform, MatrixPointer);
111 
113 
114 
115 protected:
118 
119  typename LightObject::Pointer InternalClone() const ITK_OVERRIDE;
120 
121  virtual void VerifyInputParameters() const ITK_OVERRIDE;
122 
123  void BeforeThreadedGenerateData () ITK_OVERRIDE;
124  // void ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread,ThreadIdType threadId );
125 
126  void SetSPFIEstimator();
127 
128  void PrintSelf(std::ostream& os, Indent indent) const ITK_OVERRIDE;
129 
130  double m_BasisScale;
131  double m_MD0;
132  double m_Tau;
133  int m_SHRank;
135  typename ScalarImageType::Pointer m_ScaleImage;
136 
139 
142 
143  MatrixPointer m_SPFToFeatureTransform;
144  BasisType m_BasisType;
145 
147  MatrixPointer m_Orientations;
148 
150 
151 private:
152  FeaturesFromSPFImageFilter(const Self&); //purposely not implemented
153  void operator=(const Self&); //purposely not implemented
154 
155 };
156 
157 }
158 
159 #if ITK_TEMPLATE_EXPLICIT
160 # include "Templates/itkFeaturesFromSPFImageFilter+-.h"
161 #endif
162 
163 #if !defined(ITK_MANUAL_INSTANTIATION) && !defined(__itkFeaturesFromSPFImageFilter_hxx)
165 #endif
166 
167 
168 
169 
170 #endif
171 
SphericalPolarFourierEstimationImageFilter< TInputImage, TOutputImage > SPFIFilterBaseType
#define itkTypedefMaskedImageToImageMacro(Superclass)
Definition: utlITKMacro.h:165
#define ITK_OVERRIDE
Definition: utlITKMacro.h:46
utl_shared_ptr< STDVectorType > STDVectorPointer
utl_shared_ptr< MatrixType > MatrixPointer
utl_shared_ptr< VectorType > VectorPointer
ImageToImageFilter with mask and threaded logger support.
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...
MaskedImageToImageFilter< TInputImage, TOutputImage > Superclass
Compute some features (DWI/EAP profile, ODFs, scalar indices) from SPF coefficients.