00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __itkBSplineDownsampleImageFilter_h
00022 #define __itkBSplineDownsampleImageFilter_h
00023
00024
00025 #include "itkBSplineResampleImageFilterBase.h"
00026 #include "itkBSplineL2ResampleImageFilterBase.h"
00027 #include "itkBSplineCenteredResampleImageFilterBase.h"
00028 #include "itkBSplineCenteredL2ResampleImageFilterBase.h"
00029
00030 namespace itk
00031 {
00080
00081 template <class TInputImage, class TOutputImage,
00082 class ResamplerType = BSplineResampleImageFilterBase<TInputImage, TOutputImage> >
00083 class ITK_EXPORT BSplineDownsampleImageFilter :
00084 public ResamplerType
00085 {
00086 public:
00088 typedef BSplineDownsampleImageFilter Self;
00089 typedef ResamplerType Superclass;
00090 typedef SmartPointer<Self> Pointer;
00091 typedef SmartPointer<const Self> ConstPointer;
00092
00094 itkTypeMacro(BSplineDownsampleImageFilter, ResamplerType);
00095
00096
00098 itkNewMacro( Self );
00099
00101 typedef typename Superclass::InputImageType InputImageType;
00102
00104 typedef typename Superclass::InputImagePointer InputImagePointer;
00105
00107 typedef typename Superclass::OutputImagePointer OutputImagePointer;
00108
00110 typedef typename Superclass::OutputImageIterator OutputImageIterator;
00111
00114 void GenerateOutputInformation();
00115
00117 void GenerateInputRequestedRegion();
00118
00119 protected:
00120
00121 void GenerateData();
00122 void EnlargeOutputRequestedRegion( DataObject *output );
00123
00124 BSplineDownsampleImageFilter();
00125 virtual ~BSplineDownsampleImageFilter() {};
00126
00127 private:
00128 BSplineDownsampleImageFilter( const Self& );
00129 void operator=( const Self& );
00130
00131 };
00132
00133 }
00134
00135 #ifndef ITK_MANUAL_INSTANTIATION
00136 #include "itkBSplineDownsampleImageFilter.txx"
00137 #endif
00138
00139 #endif