go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxKNNGraphAlphaMutualInformationMetric.h
Go to the documentation of this file.
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 doxygen 1.7.6.1 elastix logo