00001 /*========================================================================= 00002 00003 Library : Image Registration Toolkit (IRTK) 00004 Module : $Id: irtkImageEigenFreeFormRegistration.h 2 2008-12-23 12:40:14Z dr $ 00005 Copyright : Imperial College, Department of Computing 00006 Visual Information Processing (VIP), 2008 onwards 00007 Date : $Date: 2008-12-23 12:40:14 +0000 (Tue, 23 Dec 2008) $ 00008 Version : $Revision: 2 $ 00009 Changes : $Author: dr $ 00010 00011 =========================================================================*/ 00012 00013 #ifndef _IRTKIMAGEEIGENFREEFORMREGISTRATION_H 00014 00015 #define _IRTKIMAGEEIGENFREEFORMREGISTRATION_H 00016 00017 #include <irtkRegistration.h> 00018 00030 class irtkImageEigenFreeFormRegistration : public irtkImageFreeFormRegistration 00031 { 00032 00033 protected: 00034 00036 int _NumberOfModes; 00037 00039 irtkEigenFreeFormTransformation *_effd; 00040 00042 virtual void Initialize(int); 00043 00045 virtual void Finalize(int); 00046 00047 public: 00048 00049 // 00050 // Constructor and destructor 00051 // 00052 00054 irtkImageEigenFreeFormRegistration(); 00055 00057 virtual ~irtkImageEigenFreeFormRegistration(); 00058 00059 // Access parameters 00060 virtual SetMacro(NumberOfModes, int); 00061 virtual GetMacro(NumberOfModes, int); 00062 00063 // 00064 // Inherited methods to be implemented 00065 // 00066 00068 virtual const char *NameOfClass(); 00069 00079 virtual double EvaluateGradient(float, float *); 00080 00081 }; 00082 00083 // 00084 // Inherited methods to be implemented 00085 // 00086 00087 inline const char *irtkImageEigenFreeFormRegistration::NameOfClass() 00088 { 00089 return "irtkImageEigenFreeFormRegistration"; 00090 } 00091 00092 #endif