X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2Fexamples%2Fexample_View2DImage.cxx;h=be654b2217e23599f24766f5e7638361ba68739b;hb=7e29f3aec097ba1bff1894fed6eb1094276c5b72;hp=ea0554da0e5c7a78216565bd1a1851a6228f09ef;hpb=8e5fd31fd4d280781d8bc27a799361bf9c30b1d4;p=cpPlugins.git diff --git a/appli/examples/example_View2DImage.cxx b/appli/examples/example_View2DImage.cxx index ea0554d..be654b2 100644 --- a/appli/examples/example_View2DImage.cxx +++ b/appli/examples/example_View2DImage.cxx @@ -1,30 +1,20 @@ #include #include #include +#include #include #include #include -#include -#include +#include #include #include - -#include -#include - - // ------------------------------------------------------------------------- -typedef cpPlugins::Interface::Interface TInterface; -typedef cpPlugins::Interface::ProcessObject TProcessObject; -typedef cpPlugins::Interface::DataObject TDataObject; -typedef cpPlugins::Interface::Image TImage; -typedef cpPlugins::Interface::Parameters TParameters; -typedef TInterface::TClasses TClasses; - +typedef cpPlugins::Interface::Plugins TPlugins; +typedef cpPlugins::Interface::Image TImage; typedef cpExtensions::Visualization::ImageSliceActors TSliceActors; // ------------------------------------------------------------------------- @@ -34,53 +24,39 @@ int main( int argc, char* argv[] ) { std::cerr << "Usage: " << argv[ 0 ] - << " plugins_file input_image [widget]" + << " plugins_file input_image" << std::endl; return( 1 ); } // fi - // Create interface - TInterface plugins; - if( !plugins.Load( argv[ 1 ] ) ) + // Load plugins + cpPlugins::Interface::Plugins plugins; + if( !plugins.LoadPluginsPath( argv[ 1 ] ) ) { std::cerr << "Failed to load plugins." << std::endl; return( 1 ); } // fi - // Create objects - TProcessObject::Pointer reader; - reader = plugins.CreateProcessObject( "cpPlugins::IO::ImageReader" ); - if( reader.IsNull( ) ) - { - std::cerr - << "No suitable reader found in plugins." << std::endl - << "Reader: " << reader.GetPointer( ) << std::endl - << std::endl; - return( 1 ); - - } // fi - - // Configure reader - TParameters* reader_params = reader->GetParameters( ); - if( argc > 4 ) + // Associate filenames + std::vector< std::string > fnames; + for( int i = 2; i < argc; ++i ) + fnames.push_back( argv[ i ] ); + + // Read image + std::string name = ""; + try { - for( int i = 2; i < argc; ++i ) - reader_params->AddToStringList( "FileNames", argv[ i ] ); + name = plugins.ReadImage( fnames, "" ); } - else - reader_params->AddToStringList( "FileNames", argv[ 2 ] ); - - // Execute pipeline - std::string err = reader->Update( ); - if( err != "" ) + catch( std::exception& err ) { - std::cerr << "ERROR: " << err << std::endl; + std::cerr << err.what( ) << std::endl; return( 1 ); - } // fi - TImage* image = reader->GetOutput< TImage >( "Output" ); + } // yrt + TImage* image = plugins.GetData< TImage >( name ); // Configure visualization objects vtkSmartPointer< vtkRenderer > renderer = @@ -100,35 +76,10 @@ int main( int argc, char* argv[] ) // Create slice actors vtkSmartPointer< TSliceActors > image_actors = vtkSmartPointer< TSliceActors >::New( ); - image_actors->AddInputData( image->GetVTK< vtkImageData >( ), 2 ); + image_actors->SetInputImage( image->GetVTK< vtkImageData >( ) ); + image_actors->SetAxis( 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 ) { @@ -144,7 +95,7 @@ int main( int argc, char* argv[] ) } // fi // Begin interaction - image_actors->ResetCamera( ); + renderer->ResetCamera( ); window->Render( ); interactor->Start( );