![]() |
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 __elxMultiResolutionRegistration_H__ 00016 #define __elxMultiResolutionRegistration_H__ 00017 00018 #include "itkMultiResolutionImageRegistrationMethod2.h" 00019 00020 #include "elxIncludes.h" 00021 00022 namespace elastix 00023 { 00024 using namespace itk; 00025 00043 template <class TElastix> 00044 class MultiResolutionRegistration : 00045 public 00046 RegistrationBase<TElastix>::ITKBaseType, 00047 public 00048 RegistrationBase<TElastix> 00049 { 00050 public: 00051 00053 typedef MultiResolutionRegistration Self; 00054 typedef typename RegistrationBase<TElastix> 00055 ::ITKBaseType Superclass1; 00056 typedef RegistrationBase<TElastix> Superclass2; 00057 typedef SmartPointer<Self> Pointer; 00058 typedef SmartPointer<const Self> ConstPointer; 00059 00061 itkNewMacro( Self ); 00062 00064 itkTypeMacro( MultiResolutionRegistration, MultiResolutionImageRegistrationMethod ); 00065 00070 elxClassNameMacro( "MultiResolutionRegistration" ); 00071 00075 typedef typename Superclass1::FixedImageType FixedImageType; 00076 typedef typename Superclass1::FixedImageConstPointer FixedImageConstPointer; 00077 typedef typename Superclass1::FixedImageRegionType FixedImageRegionType; 00078 00080 typedef typename Superclass1::MovingImageType MovingImageType; 00081 typedef typename Superclass1::MovingImageConstPointer MovingImageConstPointer; 00082 00084 typedef typename Superclass1::MetricType MetricType; 00085 typedef typename Superclass1::MetricPointer MetricPointer; 00086 00088 typedef typename Superclass1::TransformType TransformType; 00089 typedef typename Superclass1::TransformPointer TransformPointer; 00090 00092 typedef typename Superclass1::InterpolatorType InterpolatorType; 00093 typedef typename Superclass1::InterpolatorPointer InterpolatorPointer; 00094 00096 typedef typename Superclass1::OptimizerType OptimizerType; 00097 00099 typedef typename Superclass1::FixedImagePyramidType FixedImagePyramidType; 00100 typedef typename Superclass1::FixedImagePyramidPointer FixedImagePyramidPointer; 00101 00103 typedef typename Superclass1::MovingImagePyramidType MovingImagePyramidType ; 00104 typedef typename Superclass1::MovingImagePyramidPointer MovingImagePyramidPointer; 00105 00109 typedef typename Superclass1::ParametersType ParametersType; 00110 00112 typedef typename Superclass2::ElastixType ElastixType; 00113 typedef typename Superclass2::ElastixPointer ElastixPointer; 00114 typedef typename Superclass2::ConfigurationType ConfigurationType; 00115 typedef typename Superclass2::ConfigurationPointer ConfigurationPointer; 00116 typedef typename Superclass2::RegistrationType RegistrationType; 00117 typedef typename Superclass2::RegistrationPointer RegistrationPointer; 00118 typedef typename Superclass2::ITKBaseType ITKBaseType; 00119 typedef typename Superclass2::UseMaskErosionArrayType UseMaskErosionArrayType; 00120 00122 itkStaticConstMacro( FixedImageDimension, unsigned int, Superclass2::FixedImageDimension ); 00124 itkStaticConstMacro( MovingImageDimension, unsigned int, Superclass2::MovingImageDimension ); 00125 00130 virtual void BeforeRegistration( void ); 00131 00134 virtual void BeforeEachResolution( void ); 00135 00136 protected: 00137 00139 MultiResolutionRegistration(){}; 00141 virtual ~MultiResolutionRegistration() {}; 00142 00144 typedef tmr::Timer TimerType; 00146 typedef TimerType::Pointer TimerPointer; 00147 00149 typedef typename Superclass2::MaskPixelType MaskPixelType; 00150 typedef typename Superclass2::FixedMaskImageType FixedMaskImageType; 00151 typedef typename Superclass2::MovingMaskImageType MovingMaskImageType; 00152 typedef typename Superclass2::FixedMaskImagePointer FixedMaskImagePointer; 00153 typedef typename Superclass2::MovingMaskImagePointer MovingMaskImagePointer; 00154 typedef typename Superclass2::FixedMaskSpatialObjectType FixedMaskSpatialObjectType; 00155 typedef typename Superclass2::MovingMaskSpatialObjectType MovingMaskSpatialObjectType; 00156 typedef typename Superclass2::FixedMaskSpatialObjectPointer FixedMaskSpatialObjectPointer; 00157 typedef typename Superclass2::MovingMaskSpatialObjectPointer MovingMaskSpatialObjectPointer; 00158 00160 void UpdateMasks( unsigned int level ); 00161 00163 virtual void SetComponents( void ); 00164 00165 private: 00166 00168 MultiResolutionRegistration( const Self& ); // purposely not implemented 00170 void operator=( const Self& ); // purposely not implemented 00171 00172 }; // end class MultiResolutionRegistration 00173 00174 00175 } // end namespace elastix 00176 00177 #ifndef ITK_MANUAL_INSTANTIATION 00178 #include "elxMultiResolutionRegistration.hxx" 00179 #endif 00180 00181 #endif // end #ifndef __elxMultiResolutionRegistration_H__
Generated on 24-05-2012 for elastix by ![]() |
![]() |