Thin-plate-spline-based landmark-based curved geometry. More...
#include <mitkThinPlateSplineCurvedGeometry.h>
Public Types | |
typedef ThinPlateSplineCurvedGeometry | Self |
typedef LandmarkProjectorBasedCurvedGeometry | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
virtual const char * | GetClassName () const |
Method for creation through the object factory. | |
virtual void | ComputeGeometry () |
virtual AffineGeometryFrame3D::Pointer | Clone () const |
clones the geometry | |
vtkThinPlateSplineTransform * | GetThinPlateSplineTransform () const |
virtual void | SetSigma (float sigma) |
virtual float | GetSigma () const |
virtual bool | IsValid () const |
Is this Geometry3D in a state that is valid? | |
Static Public Member Functions | |
static Pointer | New () |
Protected Member Functions | |
ThinPlateSplineCurvedGeometry () | |
virtual | ~ThinPlateSplineCurvedGeometry () |
void | InitializeGeometry (Self *newGeometry) const |
Protected Attributes | |
vtkThinPlateSplineTransform * | m_ThinPlateSplineTransform |
vtkPoints * | m_VtkTargetLandmarks |
vtkPoints * | m_VtkProjectedLandmarks |
Thin-plate-spline-based landmark-based curved geometry.
Definition at line 33 of file mitkThinPlateSplineCurvedGeometry.h.
typedef itk::SmartPointer<const Self> mitk::ThinPlateSplineCurvedGeometry::ConstPointer |
Reimplemented from mitk::LandmarkProjectorBasedCurvedGeometry.
Definition at line 36 of file mitkThinPlateSplineCurvedGeometry.h.
typedef itk::SmartPointer<Self> mitk::ThinPlateSplineCurvedGeometry::Pointer |
Reimplemented from mitk::LandmarkProjectorBasedCurvedGeometry.
Definition at line 36 of file mitkThinPlateSplineCurvedGeometry.h.
Reimplemented from mitk::LandmarkProjectorBasedCurvedGeometry.
Definition at line 36 of file mitkThinPlateSplineCurvedGeometry.h.
Reimplemented from mitk::LandmarkProjectorBasedCurvedGeometry.
Definition at line 36 of file mitkThinPlateSplineCurvedGeometry.h.
mitk::ThinPlateSplineCurvedGeometry::ThinPlateSplineCurvedGeometry | ( | ) | [protected] |
Definition at line 23 of file mitkThinPlateSplineCurvedGeometry.cpp.
References mitk::LandmarkProjectorBasedCurvedGeometry::m_InterpolatingAbstractTransform, m_ThinPlateSplineTransform, m_VtkProjectedLandmarks, m_VtkTargetLandmarks, and New().
{ m_InterpolatingAbstractTransform = m_ThinPlateSplineTransform = vtkThinPlateSplineTransform::New(); m_VtkTargetLandmarks = vtkPoints::New(); m_VtkProjectedLandmarks = vtkPoints::New(); m_ThinPlateSplineTransform->SetInverseIterations(5000); }
mitk::ThinPlateSplineCurvedGeometry::~ThinPlateSplineCurvedGeometry | ( | ) | [protected, virtual] |
Definition at line 32 of file mitkThinPlateSplineCurvedGeometry.cpp.
{ // don't need to delete m_ThinPlateSplineTransform, because it is // the same as m_InterpolatingAbstractTransform, which will be deleted // by the superclass. if(m_VtkTargetLandmarks!=NULL) m_VtkTargetLandmarks->Delete(); if(m_VtkProjectedLandmarks!=NULL) m_VtkProjectedLandmarks->Delete(); }
mitk::AffineGeometryFrame3D::Pointer mitk::ThinPlateSplineCurvedGeometry::Clone | ( | ) | const [virtual] |
clones the geometry
Overwrite in all sub-classes. Normally looks like:
//## Self::Pointer newGeometry = Self::New(); //## newGeometry->Initialize(); //## InitializeGeometry(newGeometry); //## return newGeometry.GetPointer(); //##
Reimplemented from mitk::AbstractTransformGeometry.
Definition at line 93 of file mitkThinPlateSplineCurvedGeometry.cpp.
{ Self::Pointer newGeometry = Self::New(); newGeometry->Initialize(); InitializeGeometry(newGeometry); return newGeometry.GetPointer(); }
void mitk::ThinPlateSplineCurvedGeometry::ComputeGeometry | ( | ) | [virtual] |
Reimplemented from mitk::LandmarkProjectorBasedCurvedGeometry.
Definition at line 60 of file mitkThinPlateSplineCurvedGeometry.cpp.
{ Superclass::ComputeGeometry(); const mitk::PointSet::DataType::PointsContainer *finalTargetLandmarks, *projectedTargetLandmarks; finalTargetLandmarks = m_LandmarkProjector->GetFinalTargetLandmarks(); projectedTargetLandmarks = m_LandmarkProjector->GetProjectedLandmarks(); mitk::PointSet::DataType::PointsContainer::ConstIterator targetIt, projectedIt; targetIt = finalTargetLandmarks->Begin(); projectedIt = projectedTargetLandmarks->Begin(); //initialize Thin-Plate-Spline m_VtkTargetLandmarks->Reset(); m_VtkProjectedLandmarks->Reset(); vtkIdType id; int size=finalTargetLandmarks->Size(); for(id=0; id < size; ++id, ++targetIt, ++projectedIt) { const mitk::PointSet::PointType& target = targetIt->Value(); m_VtkTargetLandmarks->InsertPoint(id, target[0], target[1], target[2]); const mitk::PointSet::PointType& projected = projectedIt->Value(); m_VtkProjectedLandmarks->InsertPoint(id, projected[0], projected[1], projected[2]); } m_VtkTargetLandmarks->Modified(); m_VtkProjectedLandmarks->Modified(); m_ThinPlateSplineTransform->SetSourceLandmarks(m_VtkProjectedLandmarks); m_ThinPlateSplineTransform->SetTargetLandmarks(m_VtkTargetLandmarks); }
virtual const char* mitk::ThinPlateSplineCurvedGeometry::GetClassName | ( | ) | const [virtual] |
Method for creation through the object factory.
Reimplemented from mitk::LandmarkProjectorBasedCurvedGeometry.
float mitk::ThinPlateSplineCurvedGeometry::GetSigma | ( | ) | const [virtual] |
Definition at line 54 of file mitkThinPlateSplineCurvedGeometry.cpp.
{ return m_ThinPlateSplineTransform->GetSigma(); }
vtkThinPlateSplineTransform* mitk::ThinPlateSplineCurvedGeometry::GetThinPlateSplineTransform | ( | ) | const [inline] |
Definition at line 44 of file mitkThinPlateSplineCurvedGeometry.h.
{ return m_ThinPlateSplineTransform; }
void mitk::ThinPlateSplineCurvedGeometry::InitializeGeometry | ( | Self * | newGeometry ) | const [protected] |
Reimplemented from mitk::LandmarkProjectorBasedCurvedGeometry.
Definition at line 101 of file mitkThinPlateSplineCurvedGeometry.cpp.
{ newGeometry->SetSigma(GetSigma()); Superclass::InitializeGeometry(newGeometry); }
bool mitk::ThinPlateSplineCurvedGeometry::IsValid | ( | ) | const [virtual] |
Is this Geometry3D in a state that is valid?
Reimplemented from mitk::Geometry3D.
Definition at line 44 of file mitkThinPlateSplineCurvedGeometry.cpp.
{ return m_TargetLandmarks.IsNotNull() && (m_TargetLandmarks->Size() >= 3) && m_LandmarkProjector.IsNotNull(); }
static Pointer mitk::ThinPlateSplineCurvedGeometry::New | ( | ) | [static] |
Method for creation through the object factory.
Reimplemented from mitk::AbstractTransformGeometry.
Referenced by mitk::PointSetToCurvedGeometryFilter::GenerateOutputInformation(), and ThinPlateSplineCurvedGeometry().
void mitk::ThinPlateSplineCurvedGeometry::SetSigma | ( | float | sigma ) | [virtual] |
Definition at line 49 of file mitkThinPlateSplineCurvedGeometry.cpp.
{ m_ThinPlateSplineTransform->SetSigma(sigma); }
vtkThinPlateSplineTransform* mitk::ThinPlateSplineCurvedGeometry::m_ThinPlateSplineTransform [protected] |
Definition at line 58 of file mitkThinPlateSplineCurvedGeometry.h.
Referenced by ThinPlateSplineCurvedGeometry().
vtkPoints* mitk::ThinPlateSplineCurvedGeometry::m_VtkProjectedLandmarks [protected] |
Definition at line 61 of file mitkThinPlateSplineCurvedGeometry.h.
Referenced by ThinPlateSplineCurvedGeometry().
vtkPoints* mitk::ThinPlateSplineCurvedGeometry::m_VtkTargetLandmarks [protected] |
Definition at line 60 of file mitkThinPlateSplineCurvedGeometry.h.
Referenced by ThinPlateSplineCurvedGeometry().