00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkBinomialBlurImageFilter_h
00018 #define __itkBinomialBlurImageFilter_h
00019
00020 #include "itkImageFunction.h"
00021 #include "itkImageRegionIterator.h"
00022 #include "itkImageToImageFilter.h"
00023 #include "itkSize.h"
00024
00025 namespace itk
00026 {
00027
00037 template<class TInputImage, class TOutputImage>
00038 class ITK_EXPORT BinomialBlurImageFilter :
00039 public ImageToImageFilter<TInputImage, TOutputImage>
00040 {
00041 public:
00043 typedef BinomialBlurImageFilter Self;
00044 typedef ImageToImageFilter<TInputImage,TOutputImage> Superclass;
00045 typedef SmartPointer<Self> Pointer;
00046 typedef SmartPointer<const Self> ConstPointer;
00047
00049 itkNewMacro(Self);
00050
00052 itkTypeMacro( BinomialBlurImageFilter, ImageToImageFilter );
00053
00055 itkStaticConstMacro(NDimensions, unsigned int, TInputImage::ImageDimension);
00056 itkStaticConstMacro(NOutputDimensions, unsigned int, TOutputImage::ImageDimension);
00058
00060 typedef TInputImage InputImageType;
00061 typedef TOutputImage OutputImageType;
00062 typedef typename OutputImageType::Pointer OutputImagePointer;
00063 typedef typename InputImageType::Pointer InputImagePointer;
00064 typedef typename InputImageType::ConstPointer InputImageConstPointer;
00065
00067 typedef Size<itkGetStaticConstMacro(NDimensions)> SizeType;
00068
00070 typedef typename TOutputImage::IndexType IndexType;
00071
00073 typedef typename TOutputImage::PixelType PixelType;
00074
00076 typedef typename TOutputImage::RegionType OutputImageRegionType;
00077
00079 itkSetMacro(Repetitions, unsigned int);
00080 itkGetMacro(Repetitions, unsigned int);
00082
00087 void GenerateInputRequestedRegion();
00088
00089 #ifdef ITK_USE_CONCEPT_CHECKING
00090
00091 itkConceptMacro(SameDimensionCheck,
00092 (Concept::SameDimension<itkGetStaticConstMacro(NDimensions),
00093 itkGetStaticConstMacro(NOutputDimensions)>));
00094 itkConceptMacro(InputConvertibleToDoubleCheck,
00095 (Concept::Convertible<typename TInputImage::PixelType, double>));
00096 itkConceptMacro(DoubleConvertibleToOutputCheck,
00097 (Concept::Convertible<double, PixelType>));
00098
00100 #endif
00101
00102 protected:
00103 BinomialBlurImageFilter();
00104 virtual ~BinomialBlurImageFilter() {};
00105 void PrintSelf(std::ostream& os, Indent indent) const;
00106
00108 void GenerateData();
00109
00110 private:
00111 BinomialBlurImageFilter(const Self&);
00112 void operator=(const Self&);
00113
00115 unsigned int m_Repetitions;
00116 };
00117
00118 }
00119
00120 #ifndef ITK_MANUAL_INSTANTIATION
00121 #include "itkBinomialBlurImageFilter.txx"
00122 #endif
00123
00124 #endif
00125