3 #include <cpExtensions/Visualization/ImageSliceActors.h>
4 #include <cpPlugins/Interface.h>
6 #include <vtkImageData.h>
7 #include <vtkRenderer.h>
8 #include <vtkRenderWindow.h>
9 #include <vtkRenderWindowInteractor.h>
10 #include <vtkSmartPointer.h>
12 int main( int argc, char* argv[] )
17 << "Usage: " << argv[ 0 ]
18 << " input_image(s)" << std::endl;
24 cpPlugins::Interface interface;
25 interface.GuessAccesiblePlugins( );
28 cpPlugins::ProcessObject::Pointer reader;
31 reader = interface.Create( "IO", "ImageReader" );
32 if( reader.IsNull( ) )
35 << "\"IO::ImageReader\" creation failed."
42 auto reader_params = reader->GetParameters( );
43 for( int i = 1; i < argc; ++i )
44 reader_params->AddToOpenFileNameList( "FileNames", argv[ i ] );
47 catch( itk::ExceptionObject& err1 )
49 std::cerr << "Error: " << err1.GetDescription( ) << std::endl;
52 catch( std::exception& err2 )
54 std::cerr << "Error: " << err2.what( ) << std::endl;
59 // Prepate slice objects
60 vtkSmartPointer< cpExtensions::Visualization::ImageSliceActors > actors =
61 vtkSmartPointer< cpExtensions::Visualization::ImageSliceActors >::New( );
62 actors->SetInputData( reader->GetOutputData< vtkImageData >( "Output" ), 2 );
65 vtkSmartPointer< vtkRenderer > ren =
66 vtkSmartPointer< vtkRenderer >::New( );
67 ren->SetBackground( 0, 0, 0 );
68 actors->PushInto( ren );
70 vtkSmartPointer< vtkRenderWindow > win =
71 vtkSmartPointer< vtkRenderWindow >::New( );
72 win->AddRenderer( ren );
73 win->SetSize( 500, 500 );
75 vtkSmartPointer< vtkRenderWindowInteractor > iren =
76 vtkSmartPointer< vtkRenderWindowInteractor >::New( );
77 iren->SetRenderWindow( win );
78 iren->SetInteractorStyle( actors->GetStyle( ) );