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
00072
00074 itkTypeMacro(ImageToImageFilter,ImageSource);
00075
00077 typedef typename Superclass::OutputImageRegionType OutputImageRegionType;
00078
00080 typedef TInputImage InputImageType;
00081 typedef typename InputImageType::Pointer InputImagePointer;
00082 typedef typename InputImageType::ConstPointer InputImageConstPointer;
00083 typedef typename InputImageType::RegionType InputImageRegionType;
00084 typedef typename InputImageType::PixelType InputImagePixelType;
00085
00087 itkStaticConstMacro(InputImageDimension, unsigned int,
00088 TInputImage::ImageDimension);
00089 itkStaticConstMacro(OutputImageDimension, unsigned int,
00090 TOutputImage::ImageDimension);
00091
00093 virtual void SetInput( const InputImageType *image);
00094 virtual void SetInput( unsigned int, const TInputImage * image);
00095 const InputImageType * GetInput(void);
00096 const InputImageType * GetInput(unsigned int idx);
00097
00098
00099 protected:
00100 ImageToImageFilter();
00101 ~ImageToImageFilter();
00102
00103 virtual void PrintSelf(std::ostream& os, Indent indent) const;
00104
00129 virtual void GenerateInputRequestedRegion();
00130
00131
00134 typedef ImageToImageFilterDetail::ImageRegionCopier<itkGetStaticConstMacro(OutputImageDimension),
00135 itkGetStaticConstMacro(InputImageDimension)> InputToOutputRegionCopierType;
00136
00139 typedef ImageToImageFilterDetail::ImageRegionCopier<itkGetStaticConstMacro(InputImageDimension),
00140 itkGetStaticConstMacro(OutputImageDimension)> OutputToInputRegionCopierType;
00141
00177 virtual void CallCopyOutputRegionToInputRegion(InputImageRegionType &destRegion,
00178 const OutputImageRegionType &srcRegion);
00179
00210 virtual void CallCopyInputRegionToOutputRegion(OutputImageRegionType &destRegion,
00211 const InputImageRegionType &srcRegion);
00212
00213
00214 private:
00215 ImageToImageFilter(const Self&);
00216 void operator=(const Self&);
00217 };
00218
00219 }
00220
00221 #ifndef ITK_MANUAL_INSTANTIATION
00222 #include "itkImageToImageFilter.txx"
00223 #endif
00224
00225 #endif