#include #include #include int main( int argc, char* argv[] ) { if( argc < 4 ) { std::cerr << "Usage: " << argv[ 0 ] << " plugins_library input_image(s) output_image" << std::endl; return( 1 ); } // fi // Load interface int ret = 0; cpPlugins::Interface interface; try { interface.LoadPluginFile( argv[ 1 ] ); } catch( std::exception& err ) { std::cerr << "Interface load failed on \"" << argv[ 1 ] << "\": " << err.what( ) << std::endl; ret = 1; } // fi // Create filters cpPlugins::Workspace workspace; workspace.SetInterface( &interface ); auto reader = workspace.CreateFilter( "IO", "ImageReader", "reader" ); auto writer = workspace.CreateFilter( "IO", "ImageWriter", "writer" ); workspace.Connect( "reader", "writer", "Output", "Input" ); // Configure filters auto reader_params = reader->GetParameters( ); for( int i = 2; i < argc - 1; ++i ) reader_params->AddToOpenFileNameList( "FileNames", argv[ i ] ); auto writer_params = writer->GetParameters( ); writer_params->SetSaveFileName( "FileName", argv[ argc - 1 ] ); // Execute try { workspace.Execute( ); } catch( itk::ExceptionObject& err ) { std::cout << "Error caught: " << err << std::endl; ret = 1; } // fi // Ok finish return( ret ); } // eof - $RCSfile$