go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxRegistrationBase.h
Go to the documentation of this file.
1 /*======================================================================
2 
3  This file is part of the elastix software.
4 
5  Copyright (c) University Medical Center Utrecht. All rights reserved.
6  See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
7  details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notices for more information.
12 
13 ======================================================================*/
14 
15 #ifndef __elxRegistrationBase_h
16 #define __elxRegistrationBase_h
17 
19 #include "elxMacro.h"
20 
21 #include "elxBaseComponentSE.h"
23 
27 
28 
29 namespace elastix
30 {
31 using namespace itk;
32 
73  template <class TElastix>
74  class RegistrationBase : public BaseComponentSE<TElastix>
75  {
76  public:
77 
81 
84 
86  typedef typename Superclass::ElastixType ElastixType;
92 
94  typedef typename ElastixType::FixedImageType FixedImageType;
95  typedef typename ElastixType::MovingImageType MovingImageType;
96 
98  itkStaticConstMacro( FixedImageDimension, unsigned int, FixedImageType::ImageDimension );
100  itkStaticConstMacro( MovingImageDimension, unsigned int, MovingImageType::ImageDimension );
101 
105 
107  typedef std::vector<bool> UseMaskErosionArrayType;
108 
111  {
112  return dynamic_cast<ITKBaseType *>(this);
113  }
114 
116  virtual const ITKBaseType * GetAsITKBaseType(void) const
117  {
118  return dynamic_cast<const ITKBaseType *>(this);
119  }
120 
141  virtual bool ReadMaskParameters(
142  UseMaskErosionArrayType & useMaskErosionArray,
143  const unsigned int nrOfMasks,
144  const std::string & whichMask,
145  const unsigned int level ) const;
146 
150  virtual void AfterEachResolutionBase( void );
151 
152  protected:
153 
157  virtual ~RegistrationBase() {}
158 
160  typedef typename ElastixType::MaskPixelType MaskPixelType;
161  typedef typename ElastixType::FixedMaskType FixedMaskImageType;
162  typedef typename ElastixType::MovingMaskType MovingMaskImageType;
163  typedef typename FixedMaskImageType::Pointer FixedMaskImagePointer;
164  typedef typename MovingMaskImageType::Pointer MovingMaskImagePointer;
165  typedef ImageMaskSpatialObject2<
166  itkGetStaticConstMacro( FixedImageDimension ) > FixedMaskSpatialObjectType;
167  typedef ImageMaskSpatialObject2<
168  itkGetStaticConstMacro( MovingImageDimension ) > MovingMaskSpatialObjectType;
169  typedef typename
171  typedef typename
173 
176 
182 
195  FixedMaskSpatialObjectPointer GenerateFixedMaskSpatialObject(
196  const FixedMaskImageType * maskImage, bool useMaskErosion,
197  const FixedImagePyramidType * pyramid, unsigned int level ) const;
198 
211  MovingMaskSpatialObjectPointer GenerateMovingMaskSpatialObject(
212  const MovingMaskImageType * maskImage, bool useMaskErosion,
213  const MovingImagePyramidType * pyramid, unsigned int level ) const;
214 
215  private:
216 
218  RegistrationBase( const Self& ); // purposely not implemented
220  void operator=( const Self& ); // purposely not implemented
221 
222  }; // end class RegistrationBase
223 
224 
225 } // end namespace elastix
226 
227 
228 #ifndef ITK_MANUAL_INSTANTIATION
229 #include "elxRegistrationBase.hxx"
230 #endif
231 
232 #endif // end #ifndef __elxRegistrationBase_h
ElastixType::FixedMaskType FixedMaskImageType
The BaseComponentSE class is a base class for elastix components that provides some basic functionali...
Superclass::RegistrationType RegistrationType
BaseComponentSE< TElastix > Superclass
Base class for multi-resolution image registration methods.
ElastixType::MaskPixelType MaskPixelType
ElastixType::RegistrationBaseType RegistrationType
ElastixType::ConfigurationPointer ConfigurationPointer
ElastixType::Pointer ElastixPointer
ElastixType::ConfigurationType ConfigurationType
ITKBaseType::MovingImagePyramidType MovingImagePyramidType
Implementation of an image mask as spatial object.
ImageMaskSpatialObject2< itkGetStaticConstMacro(MovingImageDimension) > MovingMaskSpatialObjectType
FixedMaskImageType::Pointer FixedMaskImagePointer
MovingMaskImageType::Pointer MovingMaskImagePointer
Superclass::ConfigurationType ConfigurationType
This class is the elastix base class for all Registration schemes.
virtual ITKBaseType * GetAsITKBaseType(void)
Superclass::ConfigurationPointer ConfigurationPointer
RegistrationType * RegistrationPointer
ErodeMaskImageFilter< FixedMaskImageType > FixedMaskErodeFilterType
MovingMaskErodeFilterType::Pointer MovingMaskErodeFilterPointer
ErodeMaskImageFilter< MovingMaskImageType > MovingMaskErodeFilterType
FixedMaskErodeFilterType::Pointer FixedMaskErodeFilterPointer
ElastixType::FixedImageType FixedImageType
ITKBaseType::FixedImagePyramidType FixedImagePyramidType
itk::MultiResolutionImageRegistrationMethod2< FixedImageType, MovingImageType > ITKBaseType
ElastixType::MovingImageType MovingImageType
MultiResolutionPyramidImageFilter< FixedImageType, FixedImageType > FixedImagePyramidType
Superclass::RegistrationPointer RegistrationPointer
ImageMaskSpatialObject2< itkGetStaticConstMacro(FixedImageDimension) > FixedMaskSpatialObjectType
FixedMaskSpatialObjectType::Pointer FixedMaskSpatialObjectPointer
MovingMaskSpatialObjectType::Pointer MovingMaskSpatialObjectPointer
MultiResolutionPyramidImageFilter< MovingImageType, MovingImageType > MovingImagePyramidType
Superclass::ElastixType ElastixType
virtual const ITKBaseType * GetAsITKBaseType(void) const
std::vector< bool > UseMaskErosionArrayType
ElastixType::MovingMaskType MovingMaskImageType
Superclass::ElastixPointer ElastixPointer


Generated on 06-12-2013 for elastix by doxygen 1.8.5 elastix logo