#include <mitkPointSetToCurvedGeometryFilter.h>


Definition at line 33 of file mitkPointSetToCurvedGeometryFilter.h.
| typedef itk::SmartPointer<const Self> mitk::PointSetToCurvedGeometryFilter::ConstPointer |
Reimplemented from mitk::PointSetToGeometryDataFilter.
Definition at line 39 of file mitkPointSetToCurvedGeometryFilter.h.
| typedef itk::SmartPointer<Self> mitk::PointSetToCurvedGeometryFilter::Pointer |
Reimplemented from mitk::PointSetToGeometryDataFilter.
Definition at line 39 of file mitkPointSetToCurvedGeometryFilter.h.
Standard mitk class macro
Reimplemented from mitk::PointSetToGeometryDataFilter.
Definition at line 39 of file mitkPointSetToCurvedGeometryFilter.h.
Reimplemented from mitk::PointSetToGeometryDataFilter.
Definition at line 39 of file mitkPointSetToCurvedGeometryFilter.h.
Defines the geometry, onto which the input landmarks are projected. Currently, Plane and Sphere are supported, whilest plane is differentiated into 4 different planes, the xy, xz, and yz plane, as well a plane which is calculated by a principal component analysis of the input point set.
Definition at line 50 of file mitkPointSetToCurvedGeometryFilter.h.
| mitk::PointSetToCurvedGeometryFilter::PointSetToCurvedGeometryFilter | ( | ) | [protected] |
Protected constructor. Use New instead()
Definition at line 30 of file mitkPointSetToCurvedGeometryFilter.cpp.
References m_ImageToBeMapped, m_PCAPlaneCalculator, m_ProjectionMode, m_Sigma, MakeOutput(), New(), mitk::BaseProcess::SetNthOutput(), and YZPlane.
{
m_ProjectionMode = YZPlane;
m_PCAPlaneCalculator = mitk::PlaneFit::New();
m_ImageToBeMapped = NULL;
m_Sigma = 1000;
mitk::Geometry2DData::Pointer output = static_cast<mitk::Geometry2DData*> ( this->MakeOutput ( 0 ).GetPointer() );
output->Initialize();
Superclass::SetNumberOfRequiredOutputs ( 1 );
Superclass::SetNthOutput ( 0, output.GetPointer() );
}
| mitk::PointSetToCurvedGeometryFilter::~PointSetToCurvedGeometryFilter | ( | ) | [protected, virtual] |
Protected destructor. Instances are destroyed when reference count is zero
Definition at line 44 of file mitkPointSetToCurvedGeometryFilter.cpp.
{}
| void mitk::PointSetToCurvedGeometryFilter::GenerateData | ( | ) | [protected, virtual] |
Definition at line 91 of file mitkPointSetToCurvedGeometryFilter.cpp.
References mitk::PlaneGeometry::Frontal, mitk::SphereLandmarkProjector::New(), mitk::PlaneLandmarkProjector::New(), mitk::PlaneGeometry::New(), mitk::PlaneGeometry::Sagittal, and mitk::PlaneGeometry::Transversal.
{
mitk::PointSet::ConstPointer input = this->GetInput();
mitk::GeometryData::Pointer output = this->GetOutput();
//
// check preconditions
//
if ( input.IsNull() )
itkGenericExceptionMacro ( "Input point set is NULL!" );
if ( output.IsNull() )
itkGenericExceptionMacro ( "output geometry data is NULL!" );
if ( output->GetTimeSlicedGeometry() == NULL )
itkGenericExceptionMacro ( "Output time sliced geometry is NULL!" );
if ( output->GetTimeSlicedGeometry()->GetGeometry3D ( 0 ) == NULL )
itkGenericExceptionMacro ( "Output geometry3d is NULL!" );
mitk::ThinPlateSplineCurvedGeometry::Pointer curvedGeometry = dynamic_cast<mitk::ThinPlateSplineCurvedGeometry*> ( output->GetTimeSlicedGeometry()->GetGeometry3D ( 0 ) );
if ( curvedGeometry.IsNull() )
itkGenericExceptionMacro ( "Output geometry3d is not an instance of mitk::ThinPlateSPlineCurvedGeometry!" );
if ( m_ImageToBeMapped.IsNull() )
itkGenericExceptionMacro ( "Image to be mapped is NULL!" );
//
// initialize members if needed
//
if ( m_XYPlane.IsNull() || m_XZPlane.IsNull() || m_YZPlane.IsNull() )
{
m_ImageToBeMapped->UpdateOutputInformation();
const mitk::Geometry3D* imageGeometry = m_ImageToBeMapped->GetUpdatedGeometry();
imageGeometry = m_ImageToBeMapped->GetUpdatedGeometry();
m_XYPlane = mitk::PlaneGeometry::New();
m_XZPlane = mitk::PlaneGeometry::New();
m_YZPlane = mitk::PlaneGeometry::New();
m_XYPlane->InitializeStandardPlane ( imageGeometry, mitk::PlaneGeometry::Transversal );
m_YZPlane->InitializeStandardPlane ( imageGeometry, mitk::PlaneGeometry::Sagittal );
m_XZPlane->InitializeStandardPlane ( imageGeometry, mitk::PlaneGeometry::Frontal );
}
if ( m_PlaneLandmarkProjector.IsNull() )
{
m_PlaneLandmarkProjector = mitk::PlaneLandmarkProjector::New();
m_SphereLandmarkProjector = mitk::SphereLandmarkProjector::New();
}
//
// set up geometry according to the current settings
//
if ( m_ProjectionMode == Sphere )
{
curvedGeometry->SetLandmarkProjector ( m_SphereLandmarkProjector );
}
else
{
if ( m_ProjectionMode == XYPlane )
m_PlaneLandmarkProjector->SetProjectionPlane ( m_XYPlane );
else if ( m_ProjectionMode == XZPlane )
m_PlaneLandmarkProjector->SetProjectionPlane ( m_XZPlane );
else if ( m_ProjectionMode == YZPlane )
m_PlaneLandmarkProjector->SetProjectionPlane ( m_YZPlane );
else if ( m_ProjectionMode == PCAPlane )
{
itkExceptionMacro ( "PCAPlane not yet implemented!" );
m_PCAPlaneCalculator->SetInput ( input );
m_PCAPlaneCalculator->Update();
m_PlaneLandmarkProjector->SetProjectionPlane ( dynamic_cast<mitk::PlaneGeometry*> ( m_PCAPlaneCalculator->GetOutput() ) );
}
else
itkExceptionMacro ( "Unknown projection mode" );
curvedGeometry->SetLandmarkProjector ( m_PlaneLandmarkProjector );
}
//curvedGeometry->SetReferenceGeometry( m_ImageToBeMapped->GetGeometry() );
curvedGeometry->SetTargetLandmarks ( input->GetPointSet ( 0 )->GetPoints() );
curvedGeometry->SetSigma ( m_Sigma );
curvedGeometry->ComputeGeometry();
curvedGeometry->SetOversampling ( 1.0 );
}
| void mitk::PointSetToCurvedGeometryFilter::GenerateOutputInformation | ( | void | ) | [protected, virtual] |
Definition at line 47 of file mitkPointSetToCurvedGeometryFilter.cpp.
References mitk::ThinPlateSplineCurvedGeometry::New().
{
mitk::PointSet::ConstPointer input = this->GetInput();
mitk::Geometry2DData::Pointer output = dynamic_cast<mitk::Geometry2DData*> ( this->GetOutput() );
if ( input.IsNull() )
itkGenericExceptionMacro ( "Input point set is NULL!" );
if ( input->GetTimeSlicedGeometry()->GetTimeSteps() != 1 )
itkWarningMacro ( "More than one time step is not yet supported!" );
if ( output.IsNull() )
itkGenericExceptionMacro ( "Output is NULL!" );
if ( m_ImageToBeMapped.IsNull() )
itkGenericExceptionMacro ( "Image to be mapped is NULL!" );
bool update = false;
if ( output->GetGeometry() == NULL || output->GetGeometry2D() == NULL || output->GetTimeSlicedGeometry() == NULL )
update = true;
if ( ( ! update ) && ( output->GetTimeSlicedGeometry()->GetTimeSteps() != input->GetTimeSlicedGeometry()->GetTimeSteps() ) )
update = true;
if ( update )
{
mitk::ThinPlateSplineCurvedGeometry::Pointer curvedGeometry = mitk::ThinPlateSplineCurvedGeometry::New();
output->SetGeometry(curvedGeometry);
/*
mitk::TimeSlicedGeometry::Pointer timeGeometry = mitk::TimeSlicedGeometry::New();
mitk::ThinPlateSplineCurvedGeometry::Pointer curvedGeometry = mitk::ThinPlateSplineCurvedGeometry::New();
timeGeometry->InitializeEvenlyTimed ( curvedGeometry, input->GetPointSetSeriesSize() );
for ( unsigned int t = 1; t < input->GetPointSetSeriesSize(); ++t )
{
mitk::ThinPlateSplineCurvedGeometry::Pointer tmpCurvedGeometry = mitk::ThinPlateSplineCurvedGeometry::New();
timeGeometry->SetGeometry3D ( tmpCurvedGeometry.GetPointer(), t );
}
output->SetGeometry ( timeGeometry );
output->SetGeometry2D ( curvedGeometry ); // @FIXME SetGeometry2D of mitk::Geometry2DData reinitializes the TimeSlicedGeometry to 1 time step
*/
}
}
| virtual const char* mitk::PointSetToCurvedGeometryFilter::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::PointSetToGeometryDataFilter.
| virtual mitk::Image* mitk::PointSetToCurvedGeometryFilter::GetImageToBeMapped | ( | ) | [virtual] |
| virtual ProjectionMode mitk::PointSetToCurvedGeometryFilter::GetProjectionMode | ( | ) | [virtual] |
Sets / Gets whether the input land marks are projected onto a plane or sphere
| virtual float mitk::PointSetToCurvedGeometryFilter::GetSigma | ( | ) | [virtual] |
| mitk::GeometryDataSource::DataObjectPointer mitk::PointSetToCurvedGeometryFilter::MakeOutput | ( | unsigned int | idx ) | [protected, virtual] |
Reimplemented from mitk::GeometryDataSource.
Definition at line 169 of file mitkPointSetToCurvedGeometryFilter.cpp.
References mitk::Geometry2DData::New().
Referenced by PointSetToCurvedGeometryFilter().
{
return static_cast<itk::DataObject*> ( mitk::Geometry2DData::New().GetPointer() );
}
| static Pointer mitk::PointSetToCurvedGeometryFilter::New | ( | ) | [static] |
Reimplemented from mitk::PointSetToGeometryDataFilter.
Referenced by PointSetToCurvedGeometryFilter().
| void mitk::PointSetToCurvedGeometryFilter::SetDefaultCurvedGeometryProperties | ( | mitk::DataNode * | node ) | [static] |
Fills a data tree node with appropriate properties for mapping the output geometry surface
Definition at line 175 of file mitkPointSetToCurvedGeometryFilter.cpp.
References mitk::BoolProperty::New(), mitk::StringProperty::New(), mitk::DataNode::SetIntProperty(), and mitk::DataNode::SetProperty().
{
if ( node == NULL )
{
itkGenericOutputMacro ( "Warning: node is NULL!" );
return;
}
node->SetIntProperty ( "xresolution", 50 );
node->SetIntProperty ( "yresolution", 50 );
node->SetProperty ( "name", mitk::StringProperty::New ( "Curved Plane" ) );
// exclude extent of this plane when calculating DataStorage bounding box
node->SetProperty ( "includeInBoundingBox", mitk::BoolProperty::New ( false ) );
}
| virtual void mitk::PointSetToCurvedGeometryFilter::SetImageToBeMapped | ( | mitk::Image * | _arg ) | [virtual] |
| virtual void mitk::PointSetToCurvedGeometryFilter::SetProjectionMode | ( | ProjectionMode | _arg ) | [virtual] |
Sets / Gets whether the input land marks are projected onto a plane or sphere
| virtual void mitk::PointSetToCurvedGeometryFilter::SetSigma | ( | float | _arg ) | [virtual] |
Definition at line 104 of file mitkPointSetToCurvedGeometryFilter.h.
Referenced by PointSetToCurvedGeometryFilter().
Definition at line 102 of file mitkPointSetToCurvedGeometryFilter.h.
Referenced by PointSetToCurvedGeometryFilter().
mitk::PlaneLandmarkProjector::Pointer mitk::PointSetToCurvedGeometryFilter::m_PlaneLandmarkProjector [protected] |
Definition at line 106 of file mitkPointSetToCurvedGeometryFilter.h.
Definition at line 94 of file mitkPointSetToCurvedGeometryFilter.h.
Referenced by PointSetToCurvedGeometryFilter().
float mitk::PointSetToCurvedGeometryFilter::m_Sigma [protected] |
Definition at line 110 of file mitkPointSetToCurvedGeometryFilter.h.
Referenced by PointSetToCurvedGeometryFilter().
mitk::SphereLandmarkProjector::Pointer mitk::PointSetToCurvedGeometryFilter::m_SphereLandmarkProjector [protected] |
Definition at line 108 of file mitkPointSetToCurvedGeometryFilter.h.
Definition at line 96 of file mitkPointSetToCurvedGeometryFilter.h.
Definition at line 98 of file mitkPointSetToCurvedGeometryFilter.h.
Definition at line 100 of file mitkPointSetToCurvedGeometryFilter.h.
1.7.2