![]() |
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 __elxMutualInformationHistogramMetric_H__ 00016 #define __elxMutualInformationHistogramMetric_H__ 00017 00018 #include "elxIncludes.h" 00019 #include "itkMutualInformationHistogramImageToImageMetric.h" 00020 00021 #include "elxTimer.h" 00022 00023 namespace elastix 00024 { 00025 using namespace itk; 00026 00045 template <class TElastix > 00046 class MutualInformationHistogramMetric : 00047 public 00048 MutualInformationHistogramImageToImageMetric< 00049 ITK_TYPENAME MetricBase<TElastix>::FixedImageType, 00050 ITK_TYPENAME MetricBase<TElastix>::MovingImageType >, 00051 public MetricBase<TElastix> 00052 { 00053 public: 00054 00056 typedef MutualInformationHistogramMetric Self; 00057 typedef MutualInformationHistogramImageToImageMetric< 00058 typename MetricBase<TElastix>::FixedImageType, 00059 typename MetricBase<TElastix>::MovingImageType > Superclass1; 00060 typedef MetricBase<TElastix> Superclass2; 00061 typedef SmartPointer<Self> Pointer; 00062 typedef SmartPointer<const Self> ConstPointer; 00063 00065 itkNewMacro( Self ); 00066 00068 itkTypeMacro( MutualInformationHistogramMetric, 00069 MutualInformationHistogramImageToImageMetric ); 00070 00075 elxClassNameMacro( "MutualInformationHistogram" ); 00076 00078 typedef typename Superclass1::TransformType TransformType; 00079 typedef typename Superclass1::TransformPointer TransformPointer; 00080 typedef typename Superclass1::TransformJacobianType TransformJacobianType; 00081 typedef typename Superclass1::InterpolatorType InterpolatorType; 00082 typedef typename Superclass1::MeasureType MeasureType; 00083 typedef typename Superclass1::DerivativeType DerivativeType; 00084 typedef typename Superclass1::ParametersType ParametersType; 00085 typedef typename Superclass1::FixedImageType FixedImageType; 00086 typedef typename Superclass1::MovingImageType MovingImageType; 00087 typedef typename Superclass1::FixedImageConstPointer FixedImageConstPointer; 00088 typedef typename Superclass1::MovingImageConstPointer MovingImageCosntPointer; 00089 typedef typename Superclass1::ScalesType ScalesType; 00090 00092 itkStaticConstMacro( MovingImageDimension, unsigned int, 00093 MovingImageType::ImageDimension ); 00094 00096 typedef typename Superclass2::ElastixType ElastixType; 00097 typedef typename Superclass2::ElastixPointer ElastixPointer; 00098 typedef typename Superclass2::ConfigurationType ConfigurationType; 00099 typedef typename Superclass2::ConfigurationPointer ConfigurationPointer; 00100 typedef typename Superclass2::RegistrationType RegistrationType; 00101 typedef typename Superclass2::RegistrationPointer RegistrationPointer; 00102 typedef typename Superclass2::ITKBaseType ITKBaseType; 00103 00105 typedef tmr::Timer TimerType; 00106 typedef TimerType::Pointer TimerPointer; 00107 00111 virtual void BeforeRegistration(void); 00112 00116 virtual void BeforeEachResolution(void); 00117 00121 virtual void Initialize(void) throw (ExceptionObject); 00122 00123 protected: 00124 00126 MutualInformationHistogramMetric(); 00128 virtual ~MutualInformationHistogramMetric() {} 00129 00130 private: 00131 00133 MutualInformationHistogramMetric( const Self& ); // purposely not implemented 00135 void operator=( const Self& ); // purposely not implemented 00136 00137 }; // end class MutualInformationHistogramMetric 00138 00139 00140 } // end namespace elastix 00141 00142 00143 #ifndef ITK_MANUAL_INSTANTIATION 00144 #include "elxMutualInformationHistogramMetric.hxx" 00145 #endif 00146 00147 #endif // end #ifndef __elxMutualInformationHistogramMetric_H__
Generated on 24-10-2011 for elastix by ![]() |
![]() |