X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2Fexamples%2Fexample_Image_Dijkstra_EndPointDetection.cxx;h=9e79437b5a1409e0e94d0913c933d012b2f16259;hb=67b67cafced0d039cf6ff2ccf7839088fd091395;hp=aea0fe504f203100b5f04ab8123c5af82332133d;hpb=015105c2f44abb80923a59adfb1a01713506744f;p=FrontAlgorithms.git diff --git a/appli/examples/example_Image_Dijkstra_EndPointDetection.cxx b/appli/examples/example_Image_Dijkstra_EndPointDetection.cxx index aea0fe5..9e79437 100644 --- a/appli/examples/example_Image_Dijkstra_EndPointDetection.cxx +++ b/appli/examples/example_Image_Dijkstra_EndPointDetection.cxx @@ -9,9 +9,11 @@ #include +#include + #include #include -#include +#include #include #include #include @@ -20,7 +22,7 @@ #include "fpa_Utility.h" // ------------------------------------------------------------------------- -const unsigned int Dim = 2; +const unsigned int Dim = 3; typedef unsigned char TPixel; typedef float TScalar; typedef itk::Image< TPixel, Dim > TImage; @@ -66,14 +68,40 @@ int main( int argc, char* argv[] ) vtk_input_image->SetInput( input_image ); vtk_input_image->Update( ); + vtkSmartPointer outline = + vtkSmartPointer::New(); + outline->SetBounds(vtk_input_image->GetOutput( )->GetBounds()); + + vtkSmartPointer mapper = + vtkSmartPointer::New( ); + mapper->SetInputConnection( outline->GetOutputPort( ) ); + + vtkSmartPointer actor = + vtkSmartPointer::New( ); + actor->SetMapper( mapper ); + vtkSmartPointer aRenderer = + vtkSmartPointer::New(); + vtkSmartPointer renWin = + vtkSmartPointer::New(); + renWin->AddRenderer(aRenderer); + + vtkSmartPointer iren = + vtkSmartPointer::New(); + iren->SetRenderWindow(renWin); + + aRenderer->AddActor( actor ); +iren->Initialize(); + iren->Start(); + + /* fpa_Utility::Viewer2DWithSeeds viewer; viewer.SetImage( vtk_input_image->GetOutput( ) ); while( viewer.GetNumberOfSeeds( ) == 0 ) viewer.Start( ); + */ // Compute squared distance map - typename - itk::SignedMaurerDistanceMapImageFilter< TImage, TScalarImage >::Pointer + itk::SignedMaurerDistanceMapImageFilter< TImage, TScalarImage >::Pointer dmap = itk::SignedMaurerDistanceMapImageFilter< TImage, TScalarImage >::New( ); dmap->SetInput( input_image ); @@ -107,15 +135,21 @@ int main( int argc, char* argv[] ) // Associate seed TImage::PointType pnt; TImage::IndexType idx; - viewer.GetSeed( pnt, 0 ); + /* + viewer.GetSeed( pnt, 0 ); + */ + pnt[ 0 ] = 0.879066; + pnt[ 1 ] = -109.36591; + pnt[ 2 ] = 1942.480988; + if( input_image->TransformPhysicalPointToIndex( pnt, idx ) ) filter->AddSeed( idx, 0 ); // Prepare graphical debugger - typedef fpa::VTK::Image2DObserver< TFilter, vtkRenderWindow > TDebugger; + typedef fpa::VTK::Image3DObserver< TFilter, vtkRenderWindow > TDebugger; TDebugger::Pointer debugger = TDebugger::New( ); - debugger->SetRenderWindow( viewer.Window ); - debugger->SetRenderPercentage( 0.01 ); + debugger->SetRenderWindow( renWin ); + debugger->SetRenderPercentage( 0.0001 ); filter->AddObserver( itk::AnyEvent( ), debugger ); filter->ThrowEventsOn( ); @@ -145,7 +179,7 @@ int main( int argc, char* argv[] ) endpoints_actor->SetMapper( endpoints_mapper ); endpoints_actor->GetProperty( )->SetColor( 0, 1, 0 ); endpoints_actor->GetProperty( )->SetPointSize( 5 ); - viewer.Renderer->AddActor( endpoints_actor ); + aRenderer->AddActor( endpoints_actor ); TVertices2PD bifurcations2pd = TVertices2PD::New( ); bifurcations2pd->SetInput( filter->GetBifurcations( ) ); @@ -161,11 +195,11 @@ int main( int argc, char* argv[] ) bifurcations_actor->SetMapper( bifurcations_mapper ); bifurcations_actor->GetProperty( )->SetColor( 1, 0, 0 ); bifurcations_actor->GetProperty( )->SetPointSize( 5 ); - viewer.Renderer->AddActor( bifurcations_actor ); + aRenderer->AddActor( bifurcations_actor ); // Some more interaction and finish - viewer.Render( ); - viewer.Start( ); +iren->Initialize(); + iren->Start(); // Save results err = fpa_Utility::SaveImage( filter->GetLabelImage( ), output_labels_fn );