]> Creatis software - FrontAlgorithms.git/blobdiff - appli/examples/example_ImageAlgorithmRegionGrow_MultipleThresholds.cxx
Some more debug... almost there
[FrontAlgorithms.git] / appli / examples / example_ImageAlgorithmRegionGrow_MultipleThresholds.cxx
index 1f4bf3fa51f4204d927d155f148c37d93539c903..ff821034776c889ffcd7cf53accbb754a63c90cb 100644 (file)
@@ -74,43 +74,42 @@ int main( int argc, char* argv[] )
   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 );
 }