Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

mitkThinPlateSplineTransform.h

00001 /*=========================================================================
00002 
00003   Program:   3DMed
00004   Date:      $Date: 2014-02-25 18:30:00 +0800 $
00005   Version:   $Version: 4.6.0 $
00006   Copyright: MIPG, Institute of Automation, Chinese Academy of Sciences
00007 
00008 =========================================================================*/
00009 
00010 
00011 #ifndef __mitkThinPlateSplineTransform_h
00012 #define __mitkThinPlateSplineTransform_h
00013 
00014 #include "mitkTransform.h"
00015 #include "mitkPointSetKernelTransformEstimator.h"
00016 
00020 
00021 class MITK_REGISTRATION_API mitkThinPlateSplineTransform : public mitkTransform
00022 {
00023 public:
00024     MITK_TYPE(mitkThinPlateSplineTransform, mitkTransform)  
00025     virtual void PrintSelf(ostream &os);
00026 
00030     mitkThinPlateSplineTransform();
00031 
00035     mitkThinPlateSplineTransform(unsigned int imageDimension, 
00036                                  int          transformMode = MITK_TRANSFORM_THINPLATESPLINE_R);
00037 
00043     const MatrixType & GetJacobian(VectorParameterType& inPoint);
00044 
00049     virtual void ConvertTransformMaxtrixToVector();
00050 
00051     mitkPointSetKernelTransformEstimator* GetEstimator();
00052 
00053     void SetEstimator(mitkPointSetKernelTransformEstimator* e);
00054 
00055     void SetFixedLandmarks(mitkPointSet* p);
00056 
00057     void SetMovingLandmarks(mitkPointSet* p);
00058 
00059     mitk_nl_matrix<double>* GetDeformMatrix() { return m_DeformMatrix; }
00060 
00061 //  void SetParameters(vector<float>* parameters);
00062 
00063 //  vector<float>* GetParameters();
00064 
00065     void ComputeWarp();
00066 
00067     virtual void GetInverse();
00068 
00069 protected:
00070     virtual ~mitkThinPlateSplineTransform();
00071     virtual void ComputeTransformMatrix();
00072     virtual bool Execute();
00073     virtual void _transform(const ScalarParameterType* inPoint, ScalarParameterType* outPoint);
00074 
00075     mitkPointSetKernelTransformEstimator*           m_Estimator;
00076     mitk_nl_matrix<double>*                         m_DeformMatrix;
00077     unsigned int                                    m_NumberOfLandmarks;
00078     mitkPointSet*                                   m_MovingLandmarks;
00079 
00080 private:
00081     mitkThinPlateSplineTransform(const mitkThinPlateSplineTransform&);
00082     void operator = (const mitkThinPlateSplineTransform&);
00083 
00084 };
00085 
00086 
00087 //#define DEFINED_mitkThinPlateSplineTransform
00088 
00089 
00090 
00091 #endif
00092 

Generated on Tue Feb 25 15:00:37 2014 for MITK (Medical Imaging ToolKit) by  doxygen 1.4.3