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
itkNewMacro(
Self);
00054
00056
itkTypeMacro(
FFTComplexConjugateToRealImageFilter,
ImageToImageFilter);
00057
00059 typedef TInputImageType ImageType;
00060 typedef typename ImageType::SizeType
ImageSizeType;
00061
virtual void GenerateOutputInformation();
00062
virtual void GenerateInputRequestedRegion();
00063
virtual bool FullMatrix() = 0;
00064
00065
protected:
00066
FFTComplexConjugateToRealImageFilter() {}
00067 virtual ~FFTComplexConjugateToRealImageFilter(){}
00068
00069
private:
00070
FFTComplexConjugateToRealImageFilter(
const Self&);
00071
void operator=(
const Self&);
00072 };
00073 }
00074
#ifndef ITK_MANUAL_INSTANTIATION
00075
#include "itkFFTComplexConjugateToRealImageFilter.txx"
00076
#endif
00077
00078
00079
#endif