![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
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 __elxMovingImagePyramidBase_h 00016 #define __elxMovingImagePyramidBase_h 00017 00019 #include "elxMacro.h" 00020 00021 #include "elxBaseComponentSE.h" 00022 #include "itkObject.h" 00023 00024 #include "itkMultiResolutionPyramidImageFilter.h" 00025 00026 00027 namespace elastix 00028 { 00029 using namespace itk; 00030 00057 template <class TElastix> 00058 class MovingImagePyramidBase : public BaseComponentSE<TElastix> 00059 { 00060 public: 00061 00063 typedef MovingImagePyramidBase Self; 00064 typedef BaseComponentSE<TElastix> Superclass; 00065 00067 itkTypeMacro( MovingImagePyramidBase, BaseComponentSE ); 00068 00070 typedef typename Superclass::ElastixType ElastixType; 00071 typedef typename Superclass::ElastixPointer ElastixPointer; 00072 typedef typename Superclass::ConfigurationType ConfigurationType; 00073 typedef typename Superclass::ConfigurationPointer ConfigurationPointer; 00074 typedef typename Superclass::RegistrationType RegistrationType; 00075 typedef typename Superclass::RegistrationPointer RegistrationPointer; 00076 00078 typedef typename ElastixType::MovingImageType InputImageType; 00079 typedef typename ElastixType::MovingImageType OutputImageType; 00080 00082 typedef MultiResolutionPyramidImageFilter< 00083 InputImageType, OutputImageType > ITKBaseType; 00084 00086 typedef typename ITKBaseType::ScheduleType ScheduleType; 00087 00089 virtual ITKBaseType * GetAsITKBaseType( void ) 00090 { 00091 return dynamic_cast<ITKBaseType *>(this); 00092 } 00093 00095 virtual const ITKBaseType * GetAsITKBaseType( void ) const 00096 { 00097 return dynamic_cast<const ITKBaseType *>(this); 00098 } 00099 00103 virtual void BeforeRegistrationBase( void ); 00104 00108 virtual void BeforeEachResolutionBase( void ); 00109 00111 virtual void SetMovingSchedule( void ); 00112 00114 virtual void WritePyramidImage( const std::string & filename, 00115 const unsigned int & level ); // const; 00116 00117 protected: 00118 00120 MovingImagePyramidBase() {} 00122 virtual ~MovingImagePyramidBase() {} 00123 00124 private: 00125 00127 MovingImagePyramidBase( const Self& ); // purposely not implemented 00129 void operator=( const Self& ); // purposely not implemented 00130 00131 }; // end class MovingImagePyramidBase 00132 00133 00134 } // end namespace elastix 00135 00136 00137 #ifndef ITK_MANUAL_INSTANTIATION 00138 #include "elxMovingImagePyramidBase.hxx" 00139 #endif 00140 00141 #endif // end #ifndef __elxMovingImagePyramidBase_h
Generated on 24-05-2012 for elastix by ![]() |
![]() |