00001 #ifndef __itkReconstructionByDilationImageFilter_h
00002 #define __itkReconstructionByDilationImageFilter_h
00003
00004 #include "itkReconstructionImageFilter.h"
00005
00006 #include "itkNumericTraits.h"
00007
00008 namespace itk {
00042 template <class TInputImage, class TOutputImage>
00043 class ITK_EXPORT ReconstructionByDilationImageFilter :
00044 public ReconstructionImageFilter<TInputImage, TOutputImage, std::greater<typename TOutputImage::PixelType> >
00045 {
00046 public:
00047 typedef ReconstructionByDilationImageFilter Self;
00048 typedef ReconstructionImageFilter<TInputImage, TOutputImage, std::greater<typename TOutputImage::PixelType> > Superclass;
00049
00050 typedef SmartPointer<Self> Pointer;
00051 typedef SmartPointer<const Self> ConstPointer;
00052
00054 typedef TInputImage MarkerImageType;
00055 typedef TInputImage MaskImageType;
00056 typedef TOutputImage OutputImageType;
00057 typedef typename MarkerImageType::Pointer MarkerImagePointer;
00058 typedef typename MarkerImageType::ConstPointer MarkerImageConstPointer;
00059 typedef typename MarkerImageType::RegionType MarkerImageRegionType;
00060 typedef typename MarkerImageType::PixelType MarkerImagePixelType;
00061 typedef typename MaskImageType::Pointer MaskImagePointer;
00062 typedef typename MaskImageType::ConstPointer MaskImageConstPointer;
00063 typedef typename MaskImageType::RegionType MaskImageRegionType;
00064 typedef typename MaskImageType::PixelType MaskImagePixelType;
00065 typedef typename OutputImageType::Pointer OutputImagePointer;
00066 typedef typename OutputImageType::ConstPointer OutputImageConstPointer;
00067 typedef typename OutputImageType::RegionType OutputImageRegionType;
00068 typedef typename OutputImageType::PixelType OutputImagePixelType;
00069
00071 itkStaticConstMacro(MarkerImageDimension, unsigned int,
00072 TInputImage::ImageDimension);
00073 itkStaticConstMacro(MaskImageDimension, unsigned int,
00074 TInputImage::ImageDimension);
00075 itkStaticConstMacro(OutputImageDimension, unsigned int,
00076 TOutputImage::ImageDimension);
00078
00080 itkNewMacro(Self);
00081
00083 itkTypeMacro(ReconstructionByDilationImageFilter,
00084 ReconstructionImageFilter);
00085
00086
00087 protected:
00088 ReconstructionByDilationImageFilter()
00089 {
00090 this->m_MarkerValue = NumericTraits<ITK_TYPENAME TOutputImage::PixelType>::NonpositiveMin();
00091 }
00092 virtual ~ReconstructionByDilationImageFilter() {}
00093
00094 private:
00095 ReconstructionByDilationImageFilter(const Self&);
00096 void operator=(const Self&);
00097
00098
00099
00100 };
00101
00102
00103
00104 }
00105
00106 #endif
00107