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 __itkDiffusionQballPrepareVisualizationImageFilter_h_
00018 #define __itkDiffusionQballPrepareVisualizationImageFilter_h_
00019
00020 #include "MitkDiffusionImagingMBIExports.h"
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 #include "itkDiffusionQballGeneralizedFaImageFilter.h"
00029
00030 namespace itk{
00034 template< class TOdfPixelType,
00035 int NrOdfDirections>
00036 class MitkDiffusionImagingMBI_EXPORT DiffusionQballPrepareVisualizationImageFilter :
00037 public ImageToImageFilter< Image< Vector< TOdfPixelType, NrOdfDirections >, 3 >,
00038 Image< Vector< TOdfPixelType, NrOdfDirections >, 3 > >
00039 {
00040
00041 public:
00042
00043 enum NormalizationMethods
00044 {
00045 PV_NONE,
00046 PV_MAX,
00047 PV_MIN_MAX,
00048 PV_GLOBAL_MAX,
00049 PV_MIN_MAX_INVERT
00050 };
00051
00052 typedef DiffusionQballPrepareVisualizationImageFilter Self;
00053 typedef SmartPointer<Self> Pointer;
00054 typedef SmartPointer<const Self> ConstPointer;
00055 typedef ImageToImageFilter< Image< Vector< TOdfPixelType, NrOdfDirections >, 3 >,
00056 Image< Vector< TOdfPixelType, NrOdfDirections >, 3 > >
00057 Superclass;
00058
00059 typedef DiffusionQballGeneralizedFaImageFilter<TOdfPixelType,TOdfPixelType,NrOdfDirections>
00060 GfaFilterType;
00061 typedef typename GfaFilterType::OutputImageType GfaImageType;
00062 typedef typename GfaFilterType::GfaComputationMethod GfaComputationMethod;
00063
00065 itkNewMacro(Self);
00066
00068 itkTypeMacro(DiffusionQballPrepareVisualizationImageFilter,
00069 ImageToImageFilter);
00070
00071 typedef TOdfPixelType OdfComponentType;
00072
00073 typedef typename Superclass::InputImageType InputImageType;
00074
00075 typedef typename Superclass::OutputImageType OutputImageType;
00076
00077 typedef typename Superclass::OutputImageRegionType
00078 OutputImageRegionType;
00079
00080 itkStaticConstMacro(NOdfDirections,int,NrOdfDirections);
00081
00082 itkSetMacro( Threshold, OdfComponentType );
00083 itkGetMacro( Threshold, OdfComponentType );
00084
00085 itkSetMacro( NormalizationMethod, NormalizationMethods );
00086 itkGetMacro( NormalizationMethod, NormalizationMethods );
00087
00088 itkSetMacro( ScaleByGfaType, GfaComputationMethod );
00089 itkGetMacro( ScaleByGfaType, GfaComputationMethod );
00090
00091 itkSetMacro( DoScaleGfa, bool );
00092 itkGetMacro( DoScaleGfa, bool );
00093
00094 itkSetMacro( GfaParam1, double );
00095 itkGetMacro( GfaParam1, double );
00096
00097 itkSetMacro( GfaParam2, double );
00098 itkGetMacro( GfaParam2, double );
00099
00100 protected:
00101 DiffusionQballPrepareVisualizationImageFilter();
00102 ~DiffusionQballPrepareVisualizationImageFilter() {};
00103 void PrintSelf(std::ostream& os, Indent indent) const;
00104
00105 void BeforeThreadedGenerateData();
00106 void ThreadedGenerateData( const
00107 OutputImageRegionType &outputRegionForThread, int);
00108
00109 private:
00110
00112 OdfComponentType m_Threshold;
00113
00114 NormalizationMethods m_NormalizationMethod;
00115
00116 OdfComponentType m_GlobalInputMaximum;
00117
00118 GfaComputationMethod m_ScaleByGfaType;
00119
00120 bool m_DoScaleGfa;
00121
00122 typename GfaImageType::Pointer m_GfaImage;
00123
00124 double m_GfaParam1;
00125
00126 double m_GfaParam2;
00127 };
00128
00129 }
00130
00131 #ifndef ITK_MANUAL_INSTANTIATION
00132 #include "itkDiffusionQballPrepareVisualizationImageFilter.cpp"
00133 #endif
00134
00135 #endif //__itkDiffusionQballPrepareVisualizationImageFilter_h_
00136