00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkSCSLComplexConjugateToRealImageFilter_h
00018 #define __itkSCSLComplexConjugateToRealImageFilter_h
00019 #include "itkFFTComplexConjugateToRealImageFilter.h"
00020 #ifdef USE_SCSL
00021 #include <complex.h>
00022 #include <scsl_fft.h>
00023
00024 namespace itk
00025 {
00026
00027 template <typename TPixel, unsigned int VDimension = 3>
00028 class SCSLComplexConjugateToRealImageFilter :
00029 public FFTComplexConjugateToRealImageFilter<TPixel,VDimension>
00030 {
00031 public:
00033 typedef Image< std::complex<TPixel>,VDimension> TInputImageType;
00034 typedef Image<TPixel,VDimension> TOutputImageType;
00035 typedef SCSLComplexConjugateToRealImageFilter Self;
00036 typedef FFTComplexConjugateToRealImageFilter<TPixel,VDimension> Superclass;
00037 typedef SmartPointer<Self> Pointer;
00038 typedef SmartPointer<const Self> ConstPointer;
00039
00041 itkNewMacro(Self);
00042
00044 itkTypeMacro(SCSLComplexConjugateToRealImageFilter,
00045 FFTComplexConjugateToRealImageFilter);
00046
00048 typedef TInputImageType ImageType;
00049 typedef typename ImageType::SizeType ImageSizeType;
00050
00051
00052
00053 virtual void GenerateData();
00054 virtual bool FullMatrix();
00055 protected:
00056 SCSLComplexConjugateToRealImageFilter() {}
00057 virtual ~SCSLComplexConjugateToRealImageFilter() {}
00058 void PrintSelf(std::ostream& os, Indent indent) const;
00059
00060 private:
00061 SCSLComplexConjugateToRealImageFilter(const Self&);
00062 void operator=(const Self&);
00063 };
00064
00065 }
00066
00067 #ifndef ITK_MANUAL_INSTANTIATION
00068 #include "itkSCSLComplexConjugateToRealImageFilter.txx"
00069 #endif
00070 #endif // USE_SCSL
00071 #endif
00072