![]() |
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 __elxKNNGraphAlphaMutualInformationMetric_H__ 00016 #define __elxKNNGraphAlphaMutualInformationMetric_H__ 00017 00018 #include "elxIncludes.h" 00019 #include "itkKNNGraphAlphaMutualInformationImageToImageMetric.h" 00020 00021 #include "elxTimer.h" 00022 00023 namespace elastix 00024 { 00025 using namespace itk; 00026 00081 template <class TElastix > 00082 class KNNGraphAlphaMutualInformationMetric : 00083 public 00084 KNNGraphAlphaMutualInformationImageToImageMetric< 00085 ITK_TYPENAME MetricBase<TElastix>::FixedImageType, 00086 ITK_TYPENAME MetricBase<TElastix>::MovingImageType >, 00087 public MetricBase<TElastix> 00088 { 00089 public: 00090 00092 typedef KNNGraphAlphaMutualInformationMetric Self; 00093 typedef KNNGraphAlphaMutualInformationImageToImageMetric< 00094 typename MetricBase<TElastix>::FixedImageType, 00095 typename MetricBase<TElastix>::MovingImageType > Superclass1; 00096 typedef MetricBase<TElastix> Superclass2; 00097 typedef SmartPointer<Self> Pointer; 00098 typedef SmartPointer<const Self> ConstPointer; 00099 00101 itkNewMacro( Self ); 00102 00104 itkTypeMacro( KNNGraphAlphaMutualInformationMetric, 00105 KNNGraphAlphaMutualInformationImageToImageMetric ); 00106 00111 elxClassNameMacro( "KNNGraphAlphaMutualInformation" ); 00112 00114 typedef typename Superclass1::TransformType TransformType; 00115 typedef typename Superclass1::TransformPointer TransformPointer; 00116 typedef typename Superclass1::TransformJacobianType TransformJacobianType; 00117 typedef typename Superclass1::InterpolatorType InterpolatorType; 00118 typedef typename Superclass1::MeasureType MeasureType; 00119 typedef typename Superclass1::DerivativeType DerivativeType; 00120 typedef typename Superclass1::ParametersType ParametersType; 00121 typedef typename Superclass1::FixedImageType FixedImageType; 00122 typedef typename Superclass1::MovingImageType MovingImageType; 00123 typedef typename Superclass1::FixedImageConstPointer FixedImageConstPointer; 00124 typedef typename Superclass1::MovingImageConstPointer MovingImageConstPointer; 00125 00127 itkStaticConstMacro (FixedImageDimension, unsigned int, 00128 FixedImageType::ImageDimension); 00130 itkStaticConstMacro( MovingImageDimension, unsigned int, 00131 MovingImageType::ImageDimension ); 00132 00134 typedef typename Superclass2::ElastixType ElastixType; 00135 typedef typename Superclass2::ElastixPointer ElastixPointer; 00136 typedef typename Superclass2::ConfigurationType ConfigurationType; 00137 typedef typename Superclass2::ConfigurationPointer ConfigurationPointer; 00138 typedef typename Superclass2::RegistrationType RegistrationType; 00139 typedef typename Superclass2::RegistrationPointer RegistrationPointer; 00140 typedef typename Superclass2::ITKBaseType ITKBaseType; 00141 00143 typedef FixedImageType FixedFeatureImageType; 00144 typedef MovingImageType MovingFeatureImageType; 00145 00147 typedef tmr::Timer TimerType; 00149 typedef TimerType::Pointer TimerPointer; 00150 00160 virtual void BeforeRegistration( void ); 00161 00172 virtual void BeforeEachResolution( void ); 00173 00177 virtual void Initialize(void) throw (ExceptionObject); 00178 00179 protected: 00180 00182 KNNGraphAlphaMutualInformationMetric() {}; 00184 virtual ~KNNGraphAlphaMutualInformationMetric() {} 00185 00186 private: 00187 00189 KNNGraphAlphaMutualInformationMetric( const Self& ); // purposely not implemented 00191 void operator=( const Self& ); // purposely not implemented 00192 00193 }; // end class KNNGraphAlphaMutualInformationMetric 00194 00195 00196 } // end namespace elastix 00197 00198 00199 #ifndef ITK_MANUAL_INSTANTIATION 00200 #include "elxKNNGraphAlphaMutualInformationMetric.hxx" 00201 #endif 00202 00203 #endif // end #ifndef __elxKNNGraphAlphaMutualInformationMetric_H__
Generated on 24-05-2012 for elastix by ![]() |
![]() |