![]() |
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 __elxViolaWellsMutualInformationMetric_H__ 00016 #define __elxViolaWellsMutualInformationMetric_H__ 00017 00018 #include "elxIncludes.h" 00019 #include "itkMutualInformationImageToImageMetric.h" 00020 00021 #include "elxTimer.h" 00022 00023 namespace elastix 00024 { 00025 using namespace itk; 00026 00059 template <class TElastix > 00060 class ViolaWellsMutualInformationMetric : 00061 public 00062 MutualInformationImageToImageMetric< 00063 ITK_TYPENAME MetricBase<TElastix>::FixedImageType, 00064 ITK_TYPENAME MetricBase<TElastix>::MovingImageType >, 00065 public MetricBase<TElastix> 00066 { 00067 public: 00068 00070 typedef ViolaWellsMutualInformationMetric Self; 00071 typedef MutualInformationImageToImageMetric< 00072 typename MetricBase<TElastix>::FixedImageType, 00073 typename MetricBase<TElastix>::MovingImageType > Superclass1; 00074 typedef MetricBase<TElastix> Superclass2; 00075 typedef SmartPointer<Self> Pointer; 00076 typedef SmartPointer<const Self> ConstPointer; 00077 00079 itkNewMacro( Self ); 00080 00082 itkTypeMacro( ViolaWellsMutualInformationMetric, 00083 MutualInformationImageToImageMetric ); 00084 00089 elxClassNameMacro( "ViolaWellsMutualInformation" ); 00090 00092 typedef typename Superclass1::TransformType TransformType; 00093 typedef typename Superclass1::TransformPointer TransformPointer; 00094 typedef typename Superclass1::TransformJacobianType TransformJacobianType; 00095 typedef typename Superclass1::InterpolatorType InterpolatorType; 00096 typedef typename Superclass1::MeasureType MeasureType; 00097 typedef typename Superclass1::DerivativeType DerivativeType; 00098 typedef typename Superclass1::ParametersType ParametersType; 00099 typedef typename Superclass1::FixedImageType FixedImageType; 00100 typedef typename Superclass1::MovingImageType MovingImageType; 00101 typedef typename Superclass1::FixedImageConstPointer FixedImageConstPointer; 00102 typedef typename Superclass1::MovingImageConstPointer MovingImageCosntPointer; 00103 typedef typename Superclass1::FixedImageIndexType FixedImageIndexType; 00104 typedef typename Superclass1::FixedImageIndexValueType FixedImageIndexValueType; 00105 typedef typename Superclass1::MovingImageIndexType MovingImageIndexType; 00106 typedef typename Superclass1::FixedImagePointType FixedImagePointType; 00107 typedef typename Superclass1::MovingImagePointType MovingImagePointType; 00108 00110 itkStaticConstMacro( MovingImageDimension, unsigned int, 00111 MovingImageType::ImageDimension ); 00112 00114 typedef typename Superclass2::ElastixType ElastixType; 00115 typedef typename Superclass2::ElastixPointer ElastixPointer; 00116 typedef typename Superclass2::ConfigurationType ConfigurationType; 00117 typedef typename Superclass2::ConfigurationPointer ConfigurationPointer; 00118 typedef typename Superclass2::RegistrationType RegistrationType; 00119 typedef typename Superclass2::RegistrationPointer RegistrationPointer; 00120 typedef typename Superclass2::ITKBaseType ITKBaseType; 00121 00123 typedef tmr::Timer TimerType; 00124 typedef TimerType::Pointer TimerPointer; 00125 00131 virtual void BeforeEachResolution(void); 00132 00136 virtual void Initialize(void) throw (ExceptionObject); 00137 00138 protected: 00139 00141 ViolaWellsMutualInformationMetric(); 00143 virtual ~ViolaWellsMutualInformationMetric() {} 00144 00145 private: 00146 00148 ViolaWellsMutualInformationMetric( const Self& ); // purposely not implemented 00150 void operator=( const Self& ); // purposely not implemented 00151 00152 }; // end class ViolaWellsMutualInformationMetric 00153 00154 00155 } // end namespace elastix 00156 00157 00158 #ifndef ITK_MANUAL_INSTANTIATION 00159 #include "elxViolaWellsMutualInformationMetric.hxx" 00160 #endif 00161 00162 #endif // end #ifndef __elxViolaWellsMutualInformationMetric_H__
Generated on 24-05-2012 for elastix by ![]() |
![]() |