]> Creatis software - FrontAlgorithms.git/blobdiff - tests/image/RandomWalker/Original.cxx
...
[FrontAlgorithms.git] / tests / image / RandomWalker / Original.cxx
index 5a6c6df37fedea4d8d9a7a65b45b69cf1c19b7cf..46ba198914cf8fb822a820984c6561ee865aa52c 100644 (file)
@@ -9,7 +9,7 @@
 #include <fpa/Common/OriginalRandomWalker.h>
 
 // -------------------------------------------------------------------------
-const unsigned int Dim = 3;
+const unsigned int Dim = 2;
 typedef unsigned char TPixel;
 typedef unsigned char TLabel;
 
@@ -19,45 +19,47 @@ typedef itk::Image< TLabel, Dim > TLabels;
 // -------------------------------------------------------------------------
 int main( int argc, char* argv[] )
 {
-  // Get arguments
-  if( argc < 4 )
+  // Get input arguments
+  if( argc < 8 )
   {
     std::cerr
       << "Usage: " << argv[ 0 ]
-      << " input_image output_labels output_probabilities"
+      << " input_image input_labels output_labels output_probabilities"
+      << " beta eps normalize"
       << std::endl;
     return( 1 );
 
   } // fi
-  std::string input_image_filename = argv[ 1 ];
-  std::string output_labels_filename = argv[ 2 ];
-  std::string output_probabilities_filename = argv[ 3 ];
-  double beta = 90;
-  double eps = 1e-5;
-
-  TImage::IndexType s1, s2;
-  s1.Fill( 0 );
-  s2.Fill( 0 );
-  s1[ 0 ] = 131;
-  s1[ 1 ] = 150;
-  s2[ 0 ] = 200;
-  s2[ 1 ] = 200;
+  std::string input_image_filename, input_labels_filename;
+  std::string output_labels_filename, output_probabilities_filename;
+  double beta, eps;
+  bool normalize;
+  input_image_filename = argv[ 1 ];
+  input_labels_filename = argv[ 2 ];
+  output_labels_filename = argv[ 3 ];
+  output_probabilities_filename = argv[ 4 ];
+  beta = std::atof( argv[ 5 ] );
+  eps = std::atof( argv[ 6 ] );
+  normalize = ( argv[ 7 ][ 0 ] == '1' );
 
   // Read image
-  TImage::Pointer input;
   typedef itk::ImageFileReader< TImage > TImageReader;
   TImageReader::Pointer input_image_reader = TImageReader::New( );
   input_image_reader->SetFileName( input_image_filename );
 
+  // Read labels
+  typedef itk::ImageFileReader< TLabels > TLabelsReader;
+  TLabelsReader::Pointer input_labels_reader = TLabelsReader::New( );
+  input_labels_reader->SetFileName( input_labels_filename );
+
   // Random walker
   typedef fpa::Common::OriginalRandomWalker< TImage, TLabels > TFilter;
   TFilter::Pointer rw = TFilter::New( );
   rw->SetInput( input_image_reader->GetOutput( ) );
+  rw->SetInputLabels( input_labels_reader->GetOutput( ) );
   rw->SetBeta( beta );
   rw->SetEpsilon( eps );
-  rw->AddSeed( s1, 100 );
-  rw->AddSeed( s2, 150 );
-  rw->NormalizeWeightsOn( );
+  rw->SetNormalizeWeights( normalize );
 
   // Save labels
   typedef itk::ImageFileWriter< TFilter::TLabels > TLabelsWriter;