vtk_image->SetInput( input_image );
vtk_image->Update( );
- /* TODO
- vtkSmartPointer< vtkSphereSource > seed =
- vtkSmartPointer< vtkSphereSource >::New( );
- seed->SetCenter( seed_pnt[ 0 ], seed_pnt[ 1 ], seed_pnt[ 2 ] );
- seed->SetRadius( min_spac * double( 5 ) );
- seed->Update( );
- */
-
fpa::VTK::ImageMPR view;
view.SetBackground( 0.3, 0.2, 0.8 );
view.SetSize( 800, 800 );
view.SetImage( vtk_image->GetOutput( ) );
- // TODO: view.AddPolyData( seed->GetOutput( ), 1, 0, 0 );
- view.Start( );
+
+ // Wait for a seed to be given
+ while( view.GetNumberOfSeeds( ) == 0 )
+ view.Start( );
+
+ // Convert seed
+ double seed[ 3 ];
+ view.GetSeed( 0, seed );
+ TImage::PointType seed_pnt;
+ seed_pnt[ 0 ] = seed[ 0 ];
+ seed_pnt[ 1 ] = seed[ 1 ];
+ seed_pnt[ 2 ] = seed[ 2 ];
+ TImage::IndexType seed_idx;
+ input_image->TransformPhysicalPointToIndex( seed_pnt, seed_idx );
// Configure observer
- /* TODO
- TObserver::Pointer obs = TObserver::New( );
- obs->SetImage( input_image, view.GetWindow( ) );
-
- // Configure algorithm
- TFrontAlgorithm::Pointer algorithm = TFrontAlgorithm::New( );
- algorithm->AddThresholds( thr_0, thr_1, n_samples );
-
- TImage::IndexType seed_idx;
- input_image->TransformPhysicalPointToIndex( seed_pnt, seed_idx );
- algorithm->AddSeed( seed_idx, 0 );
-
- algorithm->AddObserver( itk::AnyEvent( ), obs );
- algorithm->ThrowEventsOn( );
- algorithm->SetInput( input_image );
- algorithm->SetNeighborhoodOrder( 1 );
- algorithm->SetDerivativeThreshold( double( 3 ) );
- algorithm->Update( );
-
- view.Start( );
- */
+ TObserver::Pointer obs = TObserver::New( );
+ obs->SetImage( input_image, view.GetWindow( ) );
+
+ // Configure algorithm
+ TFrontAlgorithm::Pointer algorithm = TFrontAlgorithm::New( );
+ algorithm->AddThresholds( thr_0, thr_1, n_samples );
+ algorithm->AddSeed( seed_idx, 0 );
+ algorithm->AddObserver( itk::AnyEvent( ), obs );
+ algorithm->ThrowEventsOn( );
+ algorithm->SetInput( input_image );
+ algorithm->SetNeighborhoodOrder( 1 );
+ algorithm->SetDerivativeThreshold( double( 3 ) );
+ algorithm->Update( );
+
+ // Let some interaction and close program
+ view.Start( );
return( 0 );
}