X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2Fexamples%2Fexample_View2DImage.cxx;h=ea0554da0e5c7a78216565bd1a1851a6228f09ef;hb=700a810d574b8ed4c0227a1c3fd4862f01254d03;hp=c18ca50afb3b98e83fe87cdf0bc038b3b9124772;hpb=a4bc3b8e36e91e45f37a3b7eecb5789c635aa5c0;p=cpPlugins.git diff --git a/appli/examples/example_View2DImage.cxx b/appli/examples/example_View2DImage.cxx index c18ca50..ea0554d 100644 --- a/appli/examples/example_View2DImage.cxx +++ b/appli/examples/example_View2DImage.cxx @@ -12,6 +12,11 @@ #include + +#include +#include + + // ------------------------------------------------------------------------- typedef cpPlugins::Interface::Interface TInterface; typedef cpPlugins::Interface::ProcessObject TProcessObject; @@ -29,7 +34,7 @@ int main( int argc, char* argv[] ) { std::cerr << "Usage: " << argv[ 0 ] - << " plugins_file input_image" + << " plugins_file input_image [widget]" << std::endl; return( 1 ); @@ -58,10 +63,14 @@ int main( int argc, char* argv[] ) } // fi // Configure reader - TParameters reader_params = reader->GetDefaultParameters( ); - for( int i = 2; i < argc; ++i ) - reader_params.AddValueToStringList( "FileNames", argv[ i ] ); - reader->SetParameters( reader_params ); + TParameters* reader_params = reader->GetParameters( ); + if( argc > 4 ) + { + for( int i = 2; i < argc; ++i ) + reader_params->AddToStringList( "FileNames", argv[ i ] ); + } + else + reader_params->AddToStringList( "FileNames", argv[ 2 ] ); // Execute pipeline std::string err = reader->Update( ); @@ -71,7 +80,7 @@ int main( int argc, char* argv[] ) return( 1 ); } // fi - TImage* image = reader->GetOutput< TImage >( 0 ); + TImage* image = reader->GetOutput< TImage >( "Output" ); // Configure visualization objects vtkSmartPointer< vtkRenderer > renderer = @@ -91,14 +100,51 @@ int main( int argc, char* argv[] ) // Create slice actors vtkSmartPointer< TSliceActors > image_actors = vtkSmartPointer< TSliceActors >::New( ); - image_actors->AddInputData( - image->GetVTK< vtkImageData >( ), 2, - TSliceActors::LUTType_WindowLevel - ); + image_actors->AddInputData( image->GetVTK< vtkImageData >( ), 2 ); image_actors->PushActorsInto( window ); + + + + + vtkImageData* vimage = image->GetVTK< vtkImageData >( ); + double range[ 2 ]; + vimage->GetScalarRange( range ); + + vtkSmartPointer< cpExtensions::Visualization::ImageBlender > blender = + vtkSmartPointer< cpExtensions::Visualization::ImageBlender >::New( ); + blender->AddInputData( vimage ); + blender->SetWindow( range[ 1 ] - range[ 0 ] ); + blender->SetLevel( ( range[ 1 ] + range[ 0 ] ) / double( 2 ) ); + blender->Update( ); + + std::cout << blender->GetWindow( ) << " " << blender->GetLevel( ) << std::endl; + + vtkSmartPointer< vtkPNGWriter > writer = + vtkSmartPointer< vtkPNGWriter >::New( ); + writer->SetInputConnection( blender->GetOutputPort( ) ); + writer->SetFileName( "leo_actor.png" ); + writer->Write( ); + + return( 0 ); + + + // Activate seed widget + if( argc == 4 ) + { + TSliceActors::TStyle* style = + dynamic_cast< TSliceActors::TStyle* >( image_actors->GetStyle( ) ); + if( style != NULL ) + { + if( std::string( argv[ 3 ] ) == std::string( "seed" ) ) + style->SeedWidgetOn( ); + + } // fi + + } // fi + // Begin interaction - renderer->ResetCamera( ); + image_actors->ResetCamera( ); window->Render( ); interactor->Start( );