Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkDiffusionQballGeneralizedFaImageFilter_h_
00018 #define __itkDiffusionQballGeneralizedFaImageFilter_h_
00019
00020
00021 #include "itkImageToImageFilter.h"
00022
00023 #include "vnl/vnl_vector_fixed.h"
00024 #include "vnl/vnl_matrix.h"
00025 #include "vnl/algo/vnl_svd.h"
00026 #include "itkVectorContainer.h"
00027 #include "itkVectorImage.h"
00028
00029 namespace itk{
00033 template< class TOdfPixelType,
00034 class TGfaPixelType,
00035 int NrOdfDirections>
00036 class DiffusionQballGeneralizedFaImageFilter :
00037 public ImageToImageFilter< Image< Vector< TOdfPixelType, NrOdfDirections >, 3 >,
00038 Image< TGfaPixelType, 3 > >
00039 {
00040
00041 public:
00042
00043 enum GfaComputationMethod
00044 {
00045 GFA_STANDARD,
00046 GFA_QUANTILES_HIGH_LOW,
00047 GFA_QUANTILE_HIGH,
00048 GFA_MAX_ODF_VALUE,
00049 GFA_DECONVOLUTION_COEFFS,
00050 GFA_MIN_MAX_NORMALIZED_STANDARD,
00051 GFA_NORMALIZED_ENTROPY,
00052 GFA_NEMATIC_ORDER_PARAMETER,
00053 GFA_QUANTILE_LOW,
00054 GFA_MIN_ODF_VALUE,
00055 GFA_QUANTILES_LOW_HIGH,
00056 GFA_STD_BY_MAX,
00057 GFA_PRINCIPLE_CURVATURE,
00058 GFA_GENERALIZED_GFA
00059 };
00060
00061 typedef DiffusionQballGeneralizedFaImageFilter Self;
00062 typedef SmartPointer<Self> Pointer;
00063 typedef SmartPointer<const Self> ConstPointer;
00064 typedef ImageToImageFilter< Image< Vector< TOdfPixelType, NrOdfDirections >, 3 >,
00065 Image< TGfaPixelType, 3 > >
00066 Superclass;
00067
00069 itkNewMacro(Self);
00070
00072 itkTypeMacro(DiffusionQballGeneralizedFaImageFilter,
00073 ImageToImageFilter);
00074
00075 typedef TOdfPixelType OdfComponentType;
00076
00077 typedef TGfaPixelType DirectionPixelType;
00078
00079 typedef typename Superclass::InputImageType InputImageType;
00080
00081 typedef typename Superclass::OutputImageType OutputImageType;
00082
00083 typedef typename Superclass::OutputImageRegionType
00084 OutputImageRegionType;
00085
00086 itkStaticConstMacro(NOdfDirections,int,NrOdfDirections);
00087
00088 void SetOdfImage( const InputImageType *image );
00089
00090 itkGetMacro(ComputationMethod, GfaComputationMethod);
00091 itkSetMacro(ComputationMethod, GfaComputationMethod);
00092
00093 itkGetMacro(Param1, double);
00094 itkSetMacro(Param1, double);
00095
00096 itkGetMacro(Param2, double);
00097 itkSetMacro(Param2, double);
00098
00099 protected:
00100 DiffusionQballGeneralizedFaImageFilter();
00101 ~DiffusionQballGeneralizedFaImageFilter() {};
00102 void PrintSelf(std::ostream& os, Indent indent) const;
00103
00104 void BeforeThreadedGenerateData();
00105 void ThreadedGenerateData( const
00106 OutputImageRegionType &outputRegionForThread, int);
00107
00108 GfaComputationMethod m_ComputationMethod;
00109
00110 double m_Param1;
00111 double m_Param2;
00112
00113 };
00114
00115 }
00116
00117 #ifndef ITK_MANUAL_INSTANTIATION
00118 #include "itkDiffusionQballGeneralizedFaImageFilter.txx"
00119 #endif
00120
00121 #endif //__itkDiffusionQballGeneralizedFaImageFilter_h_
00122