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

mitkRegistrationFilter.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 __mitkRegistrationFilter_h
00012 #define __mitkRegistrationFilter_h
00013 
00014 #include "mitkVolumeToVolumeFilter.h"
00015 #include "mitkTransform.h"
00016 #include "mitkMetric.h"
00017 #include "mitkInterpolateFilter.h"
00018 #include "mitkOptimizer.h"
00019 #include "mitkRCPtr.h"
00020 
00049 
00050 class MITK_REGISTRATION_API mitkRegistrationFilter : public mitkVolumeToVolumeFilter
00051 {
00052 public:
00053     MITK_TYPE(mitkRegistrationFilter,mitkVolumeToVolumeFilter)
00054     virtual void PrintSelf(ostream& os);  
00055 
00060     void SetFixedVolume(mitkVolume *fixedVolume);
00061 
00062     mitkVolume* GetFixedVolume() { return this->GetInput(); }
00063 
00068     void SetMovingVolume(mitkVolume *movingVolume);// {m_MovingVolume = movingVolume;}
00069 
00074     mitkVolume* GetMovingVolume() { return m_MovingVolume; }
00075 
00080     void SetOptimizer(mitkOptimizer *optimizer);
00081 
00086     virtual mitkOptimizer* GetOptimizer();// {return m_Optimizer;}
00087 
00092     void SetMetric(mitkMetric *metric) {m_Metric = metric;}
00093 
00098     virtual mitkMetric* GetMetric();
00099 
00104     void SetInterpolator(mitkInterpolateFilter *interpolator) {m_Interpolator = interpolator;}
00105 
00110     mitkInterpolateFilter* GetInterpolator();// {return m_Interpolator;}
00111 
00116     void SetTransform(mitkTransform *transform);
00117 
00122     virtual mitkTransform* GetTransform();
00123 
00128     void SetInitialParameters(VectorParameterType & parameters);
00129     
00135     void SetInitialParameters(double* parameters, unsigned int num);
00136 
00141     VectorParameterType & GetInitialParameters();
00142     
00147     VectorParameterType & GetLastParameters();
00148 
00153     void GetLastParameters(double* parameters);
00154 
00164     void SetRegisrationRegion(int r[6]);
00165 
00166     void SetRegisrationRegion(VectorIndexType& r);
00167 
00172     bool IsOptimizationFinished() {return m_FlagRegistrationFinished;}
00173 
00177     mitkRegistrationFilter();
00178 
00183     mitkVolume* GetOutput();
00184 
00185 protected:
00186     virtual ~mitkRegistrationFilter();
00187     bool Update();
00188     virtual bool Execute();
00189     virtual bool ProcessBeforeRegistration();
00190     virtual bool ProcessAfterRegistration();
00191 
00192     mitkRCPtr<mitkOptimizer>                m_Optimizer;
00193     mitkRCPtr<mitkMetric>                   m_Metric;
00194     mitkRCPtr<mitkInterpolateFilter>        m_Interpolator;
00195     mitkRCPtr<mitkTransform>                m_Transform;
00196 
00197     //mitkRCPtr<mitkVolume>                 m_FixedVolume;
00198     mitkRCPtr<mitkVolume>                   m_MovingVolume;
00199 
00200     VectorParameterType                     m_InitialTransformParameters;
00201     VectorParameterType                     m_LastTransformParameters;
00202     VectorIndexType                         m_RegistrationRegion;
00203 
00204     bool                                    m_FlagRegistrationFinished;
00205     bool                                    m_FlagUserDefinedRegion;
00206     bool                                    m_FlagModified;
00207 
00208 private:
00209     mitkRegistrationFilter(const mitkRegistrationFilter&);
00210     void operator=(const mitkRegistrationFilter&);
00211 };
00212 
00213 
00214 //#define DEFINED_mitkRegistrationFilter
00215 
00216 
00217 
00218 #endif
00219 
00220 

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