ANIMA  4.0
animaDTITractographyImageFilter.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include <itkLinearInterpolateImageFunction.h>
5 
6 #include "AnimaTractographyExport.h"
7 
8 namespace anima
9 {
10 
15 class ANIMATRACTOGRAPHY_EXPORT dtiTractographyImageFilter : public anima::BaseTractographyImageFilter
16 {
17 public:
21 
22  typedef itk::SmartPointer<Self> Pointer;
23  typedef itk::SmartPointer<const Self> ConstPointer;
24 
25  itkNewMacro(Self)
26 
28 
29  typedef Superclass::ModelImageType ModelImageType;
30  typedef Superclass::VectorType VectorType;
31  typedef Superclass::PointType PointType;
32  typedef itk::LinearInterpolateImageFunction <ModelImageType> DTIInterpolatorType;
33  typedef DTIInterpolatorType::Pointer DTIInterpolatorPointer;
34 
35  virtual void SetInputImage(ModelImageType *input) ITK_OVERRIDE;
36 
37  void SetStopFAThreshold(double num) {m_StopFAThreshold = num;}
38  void SetStopADCThreshold(double num) {m_StopADCThreshold = num;}
39 
40  itkGetMacro(PunctureWeight, double)
41  itkSetMacro(PunctureWeight, double)
42 
43 protected:
45  virtual ~dtiTractographyImageFilter();
46 
47  virtual bool CheckModelCompatibility(VectorType &modelValue, itk::ThreadIdType threadId) ITK_OVERRIDE;
48  virtual bool CheckIndexInImageBounds(ContinuousIndexType &index) ITK_OVERRIDE;
49  virtual void GetModelValue(ContinuousIndexType &index, VectorType &modelValue) ITK_OVERRIDE;
50  virtual PointType GetModelPrincipalDirection(VectorType &modelValue, bool is2d, itk::ThreadIdType threadId) ITK_OVERRIDE;
51  virtual PointType GetNextDirection(PointType &previousDirection, VectorType &modelValue, bool is2d,
52  itk::ThreadIdType threadId) ITK_OVERRIDE;
53 
54  virtual void ComputeAdditionalScalarMaps() ITK_OVERRIDE;
55 
56 private:
57  ITK_DISALLOW_COPY_AND_ASSIGN(dtiTractographyImageFilter);
58 
59  double m_StopFAThreshold;
60  double m_StopADCThreshold;
61  double m_PunctureWeight;
62 
63  DTIInterpolatorPointer m_DTIInterpolator;
64 };
65 
66 } // end of namespace anima
DTI tractography image filter. Simple step by step tratpography, using advection-diffusion tricks fro...
itk::ContinuousIndex< double, 3 > ContinuousIndexType
DTIInterpolatorType::Pointer DTIInterpolatorPointer
itk::LinearInterpolateImageFunction< ModelImageType > DTIInterpolatorType
itk::SmartPointer< const Self > ConstPointer
anima::BaseTractographyImageFilter Superclass