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 __itkGaborImageSource_h
00018 #define __itkGaborImageSource_h
00019
00020 #include "itkImageSource.h"
00021 #include "itkFixedArray.h"
00022
00023 namespace itk
00024 {
00025
00045 template <typename TOutputImage>
00046 class ITK_EXPORT GaborImageSource : public ImageSource<TOutputImage>
00047 {
00048 public:
00049
00051 typedef GaborImageSource Self;
00052 typedef ImageSource<TOutputImage> Superclass;
00053 typedef SmartPointer<Self> Pointer;
00054 typedef SmartPointer<const Self> ConstPointer;
00055
00057 typedef TOutputImage OutputImageType;
00058 typedef typename OutputImageType::PixelType PixelType;
00059 typedef typename OutputImageType::RegionType RegionType;
00060 typedef typename OutputImageType::SpacingType SpacingType;
00061 typedef typename OutputImageType::PointType PointType;
00062 typedef typename OutputImageType::DirectionType DirectionType;
00063
00064 typedef typename RegionType::SizeType SizeType;
00065
00067 itkTypeMacro( GaborImageSource, ImageSource );
00068
00070 itkNewMacro( Self );
00071
00073 itkStaticConstMacro( ImageDimension, unsigned int,
00074 OutputImageType::ImageDimension );
00075
00077 typedef FixedArray<double,
00078 itkGetStaticConstMacro( ImageDimension )> ArrayType;
00079
00080 itkSetMacro( Size, SizeType );
00081 itkGetConstReferenceMacro( Size, SizeType );
00082
00083 itkSetMacro( Spacing, SpacingType );
00084 itkGetConstReferenceMacro( Spacing, SpacingType );
00085
00086 itkSetMacro( Origin, PointType );
00087 itkGetConstReferenceMacro( Origin, PointType );
00088
00089 itkSetMacro( Direction, DirectionType );
00090 itkGetConstReferenceMacro( Direction, DirectionType );
00091
00092 itkSetMacro( Sigma, ArrayType );
00093 itkGetConstReferenceMacro( Sigma, ArrayType );
00094
00095 itkSetMacro( Mean, ArrayType );
00096 itkGetConstReferenceMacro( Mean, ArrayType );
00097
00098 itkSetMacro( Frequency, double );
00099 itkGetConstReferenceMacro( Frequency, double );
00100
00101 itkSetMacro( CalculateImaginaryPart, bool );
00102 itkGetConstReferenceMacro( CalculateImaginaryPart, bool );
00103 itkBooleanMacro( CalculateImaginaryPart );
00104
00105 protected:
00106 GaborImageSource();
00107 ~GaborImageSource();
00108 void PrintSelf(std::ostream& os, Indent indent) const;
00109 void GenerateData();
00110 virtual void GenerateOutputInformation();
00111
00112 private:
00113 GaborImageSource( const GaborImageSource& );
00114 void operator=( const GaborImageSource& );
00115
00116 SizeType m_Size;
00117 SpacingType m_Spacing;
00118 PointType m_Origin;
00119 DirectionType m_Direction;
00120
00124 bool m_CalculateImaginaryPart;
00125
00127 double m_Frequency;
00128
00130 double m_PhaseOffset;
00131
00133 ArrayType m_Sigma;
00134
00136 ArrayType m_Mean;
00137 };
00138
00139 }
00140
00141 #ifndef ITK_MANUAL_INSTANTIATION
00142 #include "itkGaborImageSource.txx"
00143 #endif
00144
00145 #endif
00146