Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkFFTComplexToComplexImageFilter.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Insight Segmentation & Registration Toolkit
00004   Module:    $RCSfile: itkFFTComplexToComplexImageFilter.h,v $
00005   Language:  C++
00006   Date:      $Date: 2008-07-03 16:22:49 $
00007   Version:   $Revision: 1.4 $
00008 
00009   Copyright (c) Insight Software Consortium. All rights reserved.
00010   See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
00011 
00012      This software is distributed WITHOUT ANY WARRANTY; without even
00013      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00014      PURPOSE.  See the above copyright notices for more information.
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   itkGetMacro( TransformDirection, TransformDirectionType );
00095 
00096 protected:
00097   FFTComplexToComplexImageFilter() {}
00098   virtual ~FFTComplexToComplexImageFilter(){}
00099 
00101   virtual void GenerateOutputInformation(); // figure out allocation for output image
00102   virtual void GenerateInputRequestedRegion();
00104 
00105   virtual bool FullMatrix() = 0; // must be implemented in child
00106 
00107 
00108 private:
00109   FFTComplexToComplexImageFilter(const Self&); //purposely not implemented
00110   void operator=(const Self&); //purposely not implemented
00111 
00112   TransformDirectionType                          m_TransformDirection;
00113 };
00114 
00115 } // end namespace itk
00116 
00117 #ifndef ITK_MANUAL_INSTANTIATION
00118 #include "itkFFTComplexToComplexImageFilter.txx"
00119 #endif
00120 
00121 #endif
00122 

Generated at Wed Nov 5 21:24:56 2008 for ITK by doxygen 1.5.1 written by Dimitri van Heesch, © 1997-2000