]> Creatis software - cpPlugins.git/blobdiff - appli/examples/example_View2DImage.cxx
I'm on the middle of something, NOT YET STABLE - Leo
[cpPlugins.git] / appli / examples / example_View2DImage.cxx
index cc8a3e6e1eb61869ef1ab76e7177a292f3fd92f9..ea0554da0e5c7a78216565bd1a1851a6228f09ef 100644 (file)
 
 #include <cpExtensions/Visualization/ImageSliceActors.h>
 
+
+#include <cpExtensions/Visualization/ImageBlender.h>
+#include <vtkPNGWriter.h>
+
+
 // -------------------------------------------------------------------------
 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 );
 
@@ -59,8 +64,13 @@ int main( int argc, char* argv[] )
 
   // Configure reader
   TParameters* reader_params = reader->GetParameters( );
-  for( int i = 2; i < argc; ++i )
-    reader_params->AddToStringList( "FileNames", argv[ i ] );
+  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( );
@@ -93,14 +103,48 @@ int main( int argc, char* argv[] )
   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
-  TSliceActors::TStyle* style =
-    dynamic_cast< TSliceActors::TStyle* >( image_actors->GetStyle( ) );
-  if( style != NULL )
-    style->SeedWidgetOn( );
+  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( );