]> Creatis software - cpPlugins.git/blob - appli/examples/plugins/example_ReadWriteImageWithWorkspace.cxx
...
[cpPlugins.git] / appli / examples / plugins / example_ReadWriteImageWithWorkspace.cxx
1 #include <iostream>
2 #include <cpPlugins/Interface.h>
3 #include <cpPlugins/Workspace.h>
4
5 int main( int argc, char* argv[] )
6 {
7   if( argc < 3 )
8   {
9     std::cerr
10       << "Usage: " << argv[ 0 ]
11       << " input_image(s) output_image [output_workspace]" << std::endl;
12     return( 1 );
13
14   } // fi
15
16   // Load interface
17   int ret = 0;
18   cpPlugins::Interface interface;
19   interface.GuessAccesiblePlugins( );
20
21   // Create filters
22   cpPlugins::Workspace workspace;
23   workspace.SetInterface( &interface );
24   auto reader = workspace.CreateFilter( "IO", "ImageReader", "reader" );
25   auto writer = workspace.CreateFilter( "IO", "ImageWriter", "writer" );
26   workspace.Connect( "reader", "writer", "Output", "Input" );
27
28   // Configure filters
29   auto reader_params = reader->GetParameters( );
30   for( int i = 1; i < argc - 1; ++i )
31     reader_params->AddToOpenFileNameList( "FileNames", argv[ i ] );
32   auto writer_params = writer->GetParameters( );
33   writer_params->SetSaveFileName( "FileName", argv[ argc - 1 ] );
34
35   // Execute
36   try
37   {
38     workspace.Execute( );
39   }
40   catch( itk::ExceptionObject& err )
41   {
42     std::cout << "Error caught: " << err << std::endl;
43     ret = 1;
44
45   } // fi
46
47   // Ok finish
48   return( ret );
49 }
50
51 // eof - $RCSfile$