![]() |
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 __elxMultiResolutionRegistrationWithFeatures_H__ 00016 #define __elxMultiResolutionRegistrationWithFeatures_H__ 00017 00018 #include "itkMultiResolutionImageRegistrationMethodWithFeatures.h" 00019 00020 #include "elxIncludes.h" 00021 00022 namespace elastix 00023 { 00024 using namespace itk; 00025 00051 template <class TElastix> 00052 class MultiResolutionRegistrationWithFeatures : 00053 public 00054 MultiResolutionImageRegistrationMethodWithFeatures< 00055 ITK_TYPENAME RegistrationBase<TElastix>::FixedImageType, 00056 ITK_TYPENAME RegistrationBase<TElastix>::MovingImageType >, 00057 public 00058 RegistrationBase<TElastix> 00059 { 00060 public: 00061 00063 typedef MultiResolutionRegistrationWithFeatures Self; 00064 typedef MultiResolutionImageRegistrationMethodWithFeatures< 00065 typename RegistrationBase<TElastix>::FixedImageType, 00066 typename RegistrationBase<TElastix>::MovingImageType > 00067 Superclass1; 00068 typedef RegistrationBase<TElastix> Superclass2; 00069 typedef SmartPointer<Self> Pointer; 00070 typedef SmartPointer<const Self> ConstPointer; 00071 00073 itkNewMacro( Self ); 00074 00076 itkTypeMacro( MultiResolutionRegistrationWithFeatures, 00077 MultiResolutionImageRegistrationMethodWithFeatures ); 00078 00083 elxClassNameMacro( "MultiResolutionRegistrationWithFeatures" ); 00084 00088 typedef typename Superclass1::FixedImageType FixedImageType; 00089 typedef typename Superclass1::FixedImageConstPointer FixedImageConstPointer; 00090 typedef typename Superclass1::FixedImageRegionType FixedImageRegionType; 00091 00093 typedef typename Superclass1::MovingImageType MovingImageType; 00094 typedef typename Superclass1::MovingImageConstPointer MovingImageConstPointer; 00095 00097 typedef typename Superclass1::MetricType MetricType; 00098 typedef typename Superclass1::MetricPointer MetricPointer; 00099 00101 typedef typename Superclass1::TransformType TransformType; 00102 typedef typename Superclass1::TransformPointer TransformPointer; 00103 00105 typedef typename Superclass1::InterpolatorType InterpolatorType; 00106 typedef typename Superclass1::InterpolatorPointer InterpolatorPointer; 00107 00109 typedef typename Superclass1::OptimizerType OptimizerType; 00110 typedef typename Superclass1::OptimizerPointer OptimizerPointer; 00111 00113 typedef typename Superclass1::FixedImagePyramidType FixedImagePyramidType; 00114 typedef typename Superclass1::FixedImagePyramidPointer FixedImagePyramidPointer; 00115 00117 typedef typename Superclass1::MovingImagePyramidType MovingImagePyramidType ; 00118 typedef typename Superclass1::MovingImagePyramidPointer MovingImagePyramidPointer; 00119 00123 typedef typename Superclass1::ParametersType ParametersType; 00124 00126 //typedef typename Superclass1::CombinationMetricType CombinationMetricType; 00127 //typedef typename Superclass1::CombinationMetricPointer CombinationMetricPointer; 00128 00130 typedef typename Superclass2::ElastixType ElastixType; 00131 typedef typename Superclass2::ElastixPointer ElastixPointer; 00132 typedef typename Superclass2::ConfigurationType ConfigurationType; 00133 typedef typename Superclass2::ConfigurationPointer ConfigurationPointer; 00134 typedef typename Superclass2::RegistrationType RegistrationType; 00135 typedef typename Superclass2::RegistrationPointer RegistrationPointer; 00136 typedef typename Superclass2::ITKBaseType ITKBaseType; 00137 typedef typename Superclass2::UseMaskErosionArrayType UseMaskErosionArrayType; 00138 00140 itkStaticConstMacro( FixedImageDimension, unsigned int, Superclass2::FixedImageDimension ); 00141 00143 itkStaticConstMacro( MovingImageDimension, unsigned int, Superclass2::MovingImageDimension ); 00144 00151 virtual void BeforeRegistration( void ); 00152 00157 virtual void BeforeEachResolution( void ); 00158 00159 protected: 00160 00162 MultiResolutionRegistrationWithFeatures(){}; 00163 00165 virtual ~MultiResolutionRegistrationWithFeatures() {}; 00166 00168 typedef tmr::Timer TimerType; 00169 typedef TimerType::Pointer TimerPointer; 00170 00172 typedef typename Superclass2::MaskPixelType MaskPixelType; 00173 typedef typename Superclass2::FixedMaskImageType FixedMaskImageType; 00174 typedef typename Superclass2::MovingMaskImageType MovingMaskImageType; 00175 typedef typename Superclass2::FixedMaskImagePointer FixedMaskImagePointer; 00176 typedef typename Superclass2::MovingMaskImagePointer MovingMaskImagePointer; 00177 typedef typename Superclass2::FixedMaskSpatialObjectType FixedMaskSpatialObjectType; 00178 typedef typename Superclass2::MovingMaskSpatialObjectType MovingMaskSpatialObjectType; 00179 typedef typename Superclass2::FixedMaskSpatialObjectPointer FixedMaskSpatialObjectPointer; 00180 typedef typename Superclass2::MovingMaskSpatialObjectPointer MovingMaskSpatialObjectPointer; 00181 00183 void UpdateFixedMasks( unsigned int level ); 00184 void UpdateMovingMasks( unsigned int level ); 00185 00187 virtual void GetAndSetComponents( void ); 00188 00190 virtual void GetAndSetFixedImageRegions( void ); 00191 00193 virtual void GetAndSetFixedImageInterpolators( void ); 00194 00195 private: 00196 00198 MultiResolutionRegistrationWithFeatures( const Self& ); // purposely not implemented 00200 void operator=( const Self& ); // purposely not implemented 00201 00202 }; // end class MultiResolutionRegistrationWithFeatures 00203 00204 00205 } // end namespace elastix 00206 00207 #ifndef ITK_MANUAL_INSTANTIATION 00208 #include "elxMultiResolutionRegistrationWithFeatures.hxx" 00209 #endif 00210 00211 #endif // end #ifndef __elxMultiResolutionRegistrationWithFeatures_H__
Generated on 24-10-2011 for elastix by ![]() |
![]() |