+ TImage::PointType pnt;
+ input_image->TransformIndexToPhysicalPoint( idx, pnt );
+
+ points->InsertNextPoint( pnt[ 0 ], pnt[ 1 ], pnt[ 2 ] );
+ scalars->InsertNextTuple1( pd );
+ if( idx != *epIt )
+ {
+ cells->InsertNextCell( 2 );
+ cells->InsertCellPoint( points->GetNumberOfPoints( ) - 2 );
+ cells->InsertCellPoint( points->GetNumberOfPoints( ) - 1 );
+
+ } // fi
+ idx = tree.find( idx )->second.first;
+
+ } while( idx != tree.find( idx )->second.first );
+
+ } // rof
+
+ vtkSmartPointer< vtkPolyData > vtk_tree =
+ vtkSmartPointer< vtkPolyData >::New( );
+ vtk_tree->SetPoints( points );
+ vtk_tree->SetLines( cells );
+ vtk_tree->GetPointData( )->SetScalars( scalars );
+
+ view.AddPolyData( vtk_tree );
+ view.Render( );
+ view.Start( );
+
+ itk::ImageFileWriter< TImage >::Pointer segmentation_writer =
+ itk::ImageFileWriter< TImage >::New( );
+ segmentation_writer->SetInput( segmentor->GetOutput( ) );
+ segmentation_writer->SetFileName( output_segmentation_fn );
+
+ itk::ImageFileWriter< TDistanceMap >::Pointer dmap_writer =
+ itk::ImageFileWriter< TDistanceMap >::New( );
+ dmap_writer->SetInput( distanceMap->GetOutput( ) );
+ dmap_writer->SetFileName( output_distancemap_fn );
+
+ itk::ImageFileWriter< TDistanceMap >::Pointer dijk_writer =
+ itk::ImageFileWriter< TDistanceMap >::New( );
+ dijk_writer->SetInput( paths->GetOutput( ) );
+ dijk_writer->SetFileName( output_dijkstra_fn );
+
+ try
+ {
+ segmentation_writer->Update( );
+ dmap_writer->Update( );
+ dijk_writer->Update( );
+ }
+ catch( itk::ExceptionObject& err )
+ {