00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkFFTComplexConjugateToRealImageFilter_h
00018 #define __itkFFTComplexConjugateToRealImageFilter_h
00019
00020
00021 #include <itkImageToImageFilter.h>
00022 #include <itkImage.h>
00023 #include <complex>
00024
00025 namespace itk
00026 {
00033 template < class TPixel,unsigned int Dimension = 3 >
00034 class FFTComplexConjugateToRealImageFilter :
00035 public ImageToImageFilter< Image< std::complex< TPixel > , Dimension >,
00036 Image< TPixel,Dimension > >
00037
00038 {
00039 public:
00041 typedef Image< std::complex< TPixel > ,Dimension> TInputImageType;
00042 typedef Image<TPixel,Dimension> TOutputImageType;
00043
00044 typedef FFTComplexConjugateToRealImageFilter Self;
00045 typedef ImageToImageFilter< TInputImageType, TOutputImageType > Superclass;
00046 typedef SmartPointer<Self> Pointer;
00047 typedef SmartPointer<const Self> constPointer;
00048
00049 itkStaticConstMacro(ImageDimension, unsigned int,
00050 TInputImageType::ImageDimension );
00051
00053 itkTypeMacro(FFTComplexConjugateToRealImageFilter, ImageToImageFilter);
00054
00056 typedef TInputImageType ImageType;
00057 typedef typename ImageType::SizeType ImageSizeType;
00058 virtual void GenerateOutputInformation();
00059 virtual void GenerateInputRequestedRegion();
00060 virtual bool FullMatrix() = 0;
00061
00062 protected:
00063 FFTComplexConjugateToRealImageFilter() {}
00064 virtual ~FFTComplexConjugateToRealImageFilter(){}
00065
00066 private:
00067 FFTComplexConjugateToRealImageFilter(const Self&);
00068 void operator=(const Self&);
00069 };
00070 }
00071 #ifndef ITK_MANUAL_INSTANTIATION
00072 #include "itkFFTComplexConjugateToRealImageFilter.txx"
00073 #endif
00074
00075
00076 #endif