go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxFixedImagePyramidBase.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 __elxFixedImagePyramidBase_h
00016 #define __elxFixedImagePyramidBase_h
00017 
00019 #include "elxMacro.h"
00020 
00021 #include "elxBaseComponentSE.h"
00022 #include "itkObject.h"
00023 #include "itkMultiResolutionPyramidImageFilter.h"
00024 
00025 
00026 namespace elastix
00027 {
00028 using namespace itk;
00029 
00056 template <class TElastix>
00057 class FixedImagePyramidBase : public BaseComponentSE<TElastix>
00058 {
00059 public:
00060 
00062   typedef FixedImagePyramidBase       Self;
00063   typedef BaseComponentSE<TElastix>   Superclass;
00064 
00066   itkTypeMacro( FixedImagePyramidBase, BaseComponentSE );
00067 
00069   typedef typename Superclass::ElastixType            ElastixType;
00070   typedef typename Superclass::ElastixPointer         ElastixPointer;
00071   typedef typename Superclass::ConfigurationType      ConfigurationType;
00072   typedef typename Superclass::ConfigurationPointer   ConfigurationPointer;
00073   typedef typename Superclass::RegistrationType       RegistrationType;
00074   typedef typename Superclass::RegistrationPointer    RegistrationPointer;
00075 
00077   typedef typename ElastixType::FixedImageType  InputImageType;
00078   typedef typename ElastixType::FixedImageType  OutputImageType;
00079 
00081   typedef MultiResolutionPyramidImageFilter<
00082     InputImageType, OutputImageType >                 ITKBaseType;
00083 
00085   typedef typename ITKBaseType::ScheduleType          ScheduleType;
00086 
00088   virtual ITKBaseType * GetAsITKBaseType( void )
00089   {
00090     return dynamic_cast<ITKBaseType *>(this);
00091   }
00092 
00094   virtual const ITKBaseType * GetAsITKBaseType( void ) const
00095   {
00096     return dynamic_cast<const ITKBaseType *>(this);
00097   }
00098 
00102   virtual void BeforeRegistrationBase( void );
00103 
00107   virtual void BeforeEachResolutionBase( void );
00108 
00110   virtual void SetFixedSchedule( void );
00111 
00113   virtual void WritePyramidImage( const std::string & filename,
00114     const unsigned int & level );// const;
00115 
00116 protected:
00117 
00119   FixedImagePyramidBase() {}
00121   virtual ~FixedImagePyramidBase() {}
00122 
00123 private:
00124 
00126   FixedImagePyramidBase( const Self& ); // purposely not implemented
00128   void operator=( const Self& );        // purposely not implemented
00129 
00130 }; // end class FixedImagePyramidBase
00131 
00132 
00133 } // end namespace elastix
00134 
00135 
00136 #ifndef ITK_MANUAL_INSTANTIATION
00137 #include "elxFixedImagePyramidBase.hxx"
00138 #endif
00139 
00140 
00141 #endif // end #ifndef __elxFixedImagePyramidBase_h


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