00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
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 }
00085
00086 #ifndef ITK_MANUAL_INSTANTIATION
00087 #include "freRigidHessianRegistrationProcessor.txx"
00088 #endif
00089
00090 #endif