freRigidHessianRegistrationProcessor.h

Go to the documentation of this file.
00001 /*=========================================================================
00002  
00003   Program:   F.R.E.E. - flexible registration evaluation engine
00004   Version:   v.1.0.0
00005   Date:      $Date: 2006/09/01 12:00:00 $
00006   Module:    $RCSfile: freRigidHessianRegistrationProcessor.h,v $
00007   Language:  C++
00008  
00009  
00010  
00011   Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics,
00012   Institute for Medical Biometry and Informatics, University of Heidelberg,
00013   Germany). All rights reserved.
00014   See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm
00015   for details.
00016  
00017      This software is distributed WITHOUT ANY WARRANTY; without even 
00018      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00019      PURPOSE.  See the above copyright notices for more information.
00020  
00021 =========================================================================*/
00022 #ifndef __freRigidHessianRegistrationProcessor_h
00023 #define __freRigidHessianRegistrationProcessor_h
00024 
00025 #include "freRigidRegistrationProcessor.h"
00026 
00027 #include "itkImageRegistrationMethodWithHessian.h"
00028 
00029 namespace FREE
00030 {
00031 
00040 template <unsigned int VImageDimension>
00041 class RigidHessianRegistrationProcessor : public SingleRigidRegistrationProcessorBase <itk::ImageRegistrationMethodWithHessian < typename ImageTypes<VImageDimension>::InternalImageType , typename ImageTypes<VImageDimension>::InternalImageType >,
00042             itk::Transform< ScalarType, VImageDimension, VImageDimension >,
00043             itk::InterpolateImageFunction< typename ImageTypes<VImageDimension>::InternalImageType, ScalarType >,
00044             itk::ImageToImageMetricWithHessian<  typename ImageTypes<VImageDimension>::InternalImageType, typename ImageTypes<VImageDimension>::InternalImageType >,
00045             itk::SingleValuedNonLinearOptimizerWithHessian, VImageDimension >
00046 {
00047 public:
00049     typedef RigidHessianRegistrationProcessor< VImageDimension > Self;
00050     typedef SingleRigidRegistrationProcessorBase< itk::ImageRegistrationMethodWithHessian < typename ImageTypes<VImageDimension>::InternalImageType , typename ImageTypes<VImageDimension>::InternalImageType >,
00051                                                   itk::Transform< ScalarType, VImageDimension, VImageDimension >,
00052                                                   itk::InterpolateImageFunction< typename ImageTypes<VImageDimension>::InternalImageType, ScalarType >,
00053                                                   itk::ImageToImageMetricWithHessian<  typename ImageTypes<VImageDimension>::InternalImageType, typename ImageTypes<VImageDimension>::InternalImageType >,
00054                                                   itk::SingleValuedNonLinearOptimizerWithHessian,
00055                                                   VImageDimension > Superclass;
00056     typedef itk::SmartPointer<Self>        Pointer;
00057     typedef itk::SmartPointer<const Self>  ConstPointer;
00058 
00059     typedef typename Superclass::RegistrationType RegistrationType;
00060     typedef typename Superclass::RegistrationPointer RegistrationPointer;
00061 
00062     typedef typename Superclass::TransformType TransformType;
00063     typedef typename Superclass::TransformPointer TransformPointer;
00064 
00065     typedef typename Superclass::InterpolatorType InterpolatorType;
00066     typedef typename Superclass::InterpolatorPointer InterpolatorPointer;
00067 
00068     typedef typename Superclass::MetricType MetricType;
00069     typedef typename Superclass::MetricPointer MetricPointer;
00070 
00071     typedef typename Superclass::OptimizerType OptimizerType;
00072     typedef typename Superclass::OptimizerPointer OptimizerPointer;
00073 
00075     itkTypeMacro( RigidHessianRegistrationProcessor, SingleRigidRegistrationProcessorBase );
00076     itkNewMacro(Self);
00077 
00078 protected:
00079     RigidHessianRegistrationProcessor();
00080 
00081     virtual ~RigidHessianRegistrationProcessor();
00082 };
00083 
00084 }//End of Namespace free
00085 
00086 #ifndef ITK_MANUAL_INSTANTIATION
00087 #include "freRigidHessianRegistrationProcessor.txx"
00088 #endif
00089 
00090 #endif

Generated at Sat Oct 13 17:19:31 2007 for f.r.e.e. - Flexible Registration and Evaluation Engine by doxygen 1.5.3 written by Dimitri van Heesch, © 1997-2000