00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkFFTComplexToComplexImageFilter_h
00018 #define __itkFFTComplexToComplexImageFilter_h
00019
00020
00021 #include <itkImageToImageFilter.h>
00022 #include <itkImage.h>
00023 #include <complex>
00024
00025 namespace itk
00026 {
00047 template < class TPixel, unsigned int NDimension = 3 >
00048 class FFTComplexToComplexImageFilter :
00049 public ImageToImageFilter< Image< std::complex< TPixel > , NDimension >,
00050 Image< std::complex< TPixel > , NDimension > >
00051 {
00052 public:
00054 typedef Image< std::complex< TPixel > , NDimension > InputImageType;
00055 typedef Image< std::complex< TPixel > , NDimension > OutputImageType;
00056
00058 typedef FFTComplexToComplexImageFilter Self;
00059 typedef ImageToImageFilter< InputImageType, OutputImageType > Superclass;
00060 typedef SmartPointer<Self> Pointer;
00061 typedef SmartPointer<const Self> ConstPointer;
00062
00063 itkStaticConstMacro(ImageDimension, unsigned int,
00064 InputImageType::ImageDimension );
00065
00067 itkTypeMacro(FFTComplexToComplexImageFilter, ImageToImageFilter);
00068
00074 static Pointer New(void);
00075
00077 typedef enum
00078 {
00079 DIRECT = 1,
00080 INVERSE
00081 } TransformDirectionType;
00082
00083
00085 typedef InputImageType ImageType;
00086 typedef typename ImageType::SizeType ImageSizeType;
00087
00092 itkSetMacro( TransformDirection, TransformDirectionType );
00093 itkGetConstMacro( TransformDirection, TransformDirectionType );
00095
00096 protected:
00097 FFTComplexToComplexImageFilter() {}
00098 virtual ~FFTComplexToComplexImageFilter(){}
00099
00101 virtual void GenerateOutputInformation();
00102 virtual void GenerateInputRequestedRegion();
00104
00105 virtual bool FullMatrix() = 0;
00106
00107
00108 private:
00109 FFTComplexToComplexImageFilter(const Self&);
00110 void operator=(const Self&);
00111
00112 TransformDirectionType m_TransformDirection;
00113 };
00114
00115 }
00116
00117 #ifndef ITK_MANUAL_INSTANTIATION
00118 #include "itkFFTComplexToComplexImageFilter.txx"
00119 #endif
00120
00121 #endif
00122