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
00060 static Pointer New(void);
00061
00063 typedef TInputImageType ImageType;
00064 typedef typename ImageType::SizeType ImageSizeType;
00065 virtual void GenerateOutputInformation();
00066 virtual void GenerateInputRequestedRegion();
00067 virtual bool FullMatrix() = 0;
00068 void SetActualXDimensionIsOdd(bool isodd)
00069 {
00070 m_ActualXDimensionIsOdd = isodd;
00071 }
00072 void SetActualXDimensionIsOddOn() {
00073 this->SetActualXDimensionIsOdd(true);
00074 }
00075 void SetActualXDimensionIsOddOff() {
00076 this->SetActualXDimensionIsOdd(false);
00077 }
00078 bool ActualXDimensionIsOdd() { return m_ActualXDimensionIsOdd; }
00079 protected:
00080 FFTComplexConjugateToRealImageFilter() : m_ActualXDimensionIsOdd(false) {}
00081 virtual ~FFTComplexConjugateToRealImageFilter(){}
00083
00084 private:
00085 bool m_ActualXDimensionIsOdd;
00086 FFTComplexConjugateToRealImageFilter(const Self&);
00087 void operator=(const Self&);
00088 };
00089
00090 }
00091
00092 #ifndef ITK_MANUAL_INSTANTIATION
00093 #ifndef __itkVnlFFTComplexConjugateToRealImageFilter_h
00094 #ifndef __itkVnlFFTComplexConjugateToRealImageFilter_txx
00095 #ifndef __itkFFTWComplexConjugateToRealImageFilter_h
00096 #ifndef __itkFFTWComplexConjugateToRealImageFilter_txx
00097 #include "itkFFTComplexConjugateToRealImageFilter.txx"
00098 #endif
00099 #endif
00100 #endif
00101 #endif
00102 #endif
00103
00104
00105 #endif
00106