go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkErodeMaskImageFilter.h
Go to the documentation of this file.
00001 /*======================================================================
00002 
00003 This file is part of the elastix software.
00004 
00005 Copyright (c) University Medical Center Utrecht. All rights reserved.
00006 See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
00007 details.
00008 
00009 This software is distributed WITHOUT ANY WARRANTY; without even
00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00011 PURPOSE. See the above copyright notices for more information.
00012 
00013 ======================================================================*/
00014 
00015 #ifndef __itkErodeMaskImageFilter_h
00016 #define __itkErodeMaskImageFilter_h
00017 
00018 #include "itkImageToImageFilter.h"
00019 #include "itkMultiResolutionPyramidImageFilter.h"
00020 
00021 namespace itk
00022 {
00053   template <class TImage>
00054   class ErodeMaskImageFilter :
00055     public ImageToImageFilter< TImage, TImage >
00056   {
00057   public:
00059     typedef ErodeMaskImageFilter                 Self;
00060     typedef ImageToImageFilter< TImage, TImage >  Superclass;
00061     typedef SmartPointer<Self>                    Pointer;
00062     typedef SmartPointer<const Self>              ConstPointer;
00063 
00065     itkTypeMacro( ErodeMaskImageFilter, ImageToImageFilter );
00066 
00068     itkNewMacro( Self );
00069 
00071     typedef TImage                                InputImageType;
00072     typedef TImage                                OutputImageType;
00073     typedef typename InputImageType::Pointer      InputImagePointer;
00074     typedef typename OutputImageType::Pointer     OutputImagePointer;
00075     typedef typename InputImageType::PixelType    InputPixelType;
00076     typedef typename OutputImageType::PixelType   OutputPixelType;
00077 
00079     itkStaticConstMacro( InputImageDimension, unsigned int,
00080       InputImageType::ImageDimension );
00081     itkStaticConstMacro( OutputImageDimension, unsigned int,
00082       OutputImageType::ImageDimension);
00083     itkStaticConstMacro( ImageDimension, unsigned int,
00084       OutputImageType::ImageDimension );
00085 
00087     typedef MultiResolutionPyramidImageFilter<
00088       InputImageType, OutputImageType>                    ImagePyramidFilterType;
00089     typedef typename ImagePyramidFilterType::ScheduleType ScheduleType;
00090 
00095     virtual void SetSchedule( const ScheduleType & schedule )
00096     {
00097       this->m_Schedule = schedule;
00098       this->Modified();
00099     }
00100     itkGetConstReferenceMacro( Schedule, ScheduleType );
00101 
00107     itkSetMacro( IsMovingMask, bool );
00108     itkGetConstMacro( IsMovingMask, bool );
00109 
00111     itkSetMacro( ResolutionLevel, unsigned int );
00112     itkGetConstMacro( ResolutionLevel, unsigned int );
00113 
00114 #ifdef ITK_USE_CONCEPT_CHECKING
00115 
00116     itkConceptMacro(SameDimensionCheck,
00117       (Concept::SameDimension<InputImageDimension, OutputImageDimension>));
00119 #endif
00120 
00121   protected:
00122 
00124     ErodeMaskImageFilter();
00125 
00127     virtual ~ErodeMaskImageFilter(){}
00128 
00133     virtual void GenerateData( void );
00134 
00135   private:
00136     ErodeMaskImageFilter( const Self & );  // purposely not implemented
00137     void operator=( const Self& );          // purposely not implemented
00138 
00139     bool          m_IsMovingMask;
00140     unsigned int  m_ResolutionLevel;
00141     ScheduleType  m_Schedule;
00142 
00143   }; // end class ErodeMaskImageFilter
00144 
00145 } // end namespace itk
00146 
00147 #ifndef ITK_MANUAL_INSTANTIATION
00148 #include "itkErodeMaskImageFilter.txx"
00149 #endif
00150 
00151 #endif


Generated on 11-05-2012 for elastix by doxygen 1.7.6.1 elastix logo