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