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().
1.7.2