00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __itkImageToImageFilter_h
00021 #define __itkImageToImageFilter_h
00022
00023 #include "itkImageSource.h"
00024 #include "itkConceptChecking.h"
00025 #include "itkImageToImageFilterDetail.h"
00026
00027 namespace itk
00028 {
00029
00062 template <class TInputImage, class TOutputImage>
00063 class ITK_EXPORT ImageToImageFilter : public ImageSource<TOutputImage>
00064 {
00065 public:
00067 typedef ImageToImageFilter Self;
00068 typedef ImageSource<TOutputImage> Superclass;
00069 typedef SmartPointer<Self> Pointer;
00070 typedef SmartPointer<const Self> ConstPointer;
00071
00073 itkNewMacro(Self);
00074
00076 itkTypeMacro(ImageToImageFilter,ImageSource);
00077
00079 typedef typename Superclass::OutputImageRegionType OutputImageRegionType;
00080
00082 typedef TInputImage InputImageType;
00083 typedef typename InputImageType::Pointer InputImagePointer;
00084 typedef typename InputImageType::ConstPointer InputImageConstPointer;
00085 typedef typename InputImageType::RegionType InputImageRegionType;
00086 typedef typename InputImageType::PixelType InputImagePixelType;
00087
00089 itkStaticConstMacro(InputImageDimension, unsigned int,
00090 TInputImage::ImageDimension);
00091 itkStaticConstMacro(OutputImageDimension, unsigned int,
00092 TOutputImage::ImageDimension);
00093
00095 virtual void SetInput( const InputImageType *image);
00096 virtual void SetInput( unsigned int, const TInputImage * image);
00097 const InputImageType * GetInput(void);
00098 const InputImageType * GetInput(unsigned int idx);
00099
00100
00101 protected:
00102 ImageToImageFilter();
00103 ~ImageToImageFilter();
00104
00105 virtual void PrintSelf(std::ostream& os, Indent indent) const;
00106
00121 virtual void GenerateInputRequestedRegion();
00122
00123
00125 typedef ImageToImageFilterDetail::ImageRegionCopier<itkGetStaticConstMacro(InputImageDimension),
00126 itkGetStaticConstMacro(OutputImageDimension)> RegionCopierType;
00127
00165 virtual void CallCopyRegion(InputImageRegionType &destRegion,
00166 const OutputImageRegionType &srcRegion);
00167
00168 private:
00169 ImageToImageFilter(const Self&);
00170 void operator=(const Self&);
00171 };
00172
00173 }
00174
00175 #ifndef ITK_MANUAL_INSTANTIATION
00176 #include "itkImageToImageFilter.txx"
00177 #endif
00178
00179 #endif