]> Creatis software - FrontAlgorithms.git/blob - examples/MoriRegionGrow_00.cxx
...
[FrontAlgorithms.git] / examples / MoriRegionGrow_00.cxx
1 #include <itkImage.h>
2 #include <itkImageFileReader.h>
3 #include <itkImageFileWriter.h>
4 #include <fpa/Image/MoriRegionGrow.h>
5
6 // -------------------------------------------------------------------------
7 typedef itk::Image< unsigned char, 2 >               TImage;
8 typedef itk::ImageFileReader< TImage >               TReader;
9 typedef itk::ImageFileWriter< TImage >               TWriter;
10 typedef fpa::Image::MoriRegionGrow< TImage, TImage > TFilter;
11
12 // -------------------------------------------------------------------------
13 int main( int argc, char* argv[] )
14 {
15   if( argc < 4 )
16   {
17     std::cerr
18       << "Usage: " << argv[ 0 ]
19       << " input_filename output_filename sensitivity" << std::endl;
20     return( 1 );
21
22   } // fi
23   std::string in_fname = argv[ 1 ];
24   std::string out_fname = argv[ 2 ];
25   double sensitivity = std::atof( argv[ 3 ] );
26   int seed_x = 111;
27   int seed_y = 91;
28
29   TReader::Pointer reader = TReader::New( );
30   reader->SetFileName( in_fname );
31
32   TImage::IndexType seed;
33   seed[ 0 ] = seed_x;
34   seed[ 1 ] = seed_y;
35
36   TFilter::Pointer filter = TFilter::New( );
37   filter->SetInput( reader->GetOutput( ) );
38   filter->SetLower( 0 );
39   filter->SetUpper( 255 );
40   filter->SetStep( 1 );
41   filter->SetInsideValue( 255 );
42   filter->SetOutsideValue( 0 );
43   filter->SetSensitivity( sensitivity );
44   filter->AddSeed( seed, filter->GetInsideValue( ) );
45
46   TWriter::Pointer writer = TWriter::New( );
47   writer->SetInput( filter->GetOutput( ) );
48   writer->SetFileName( out_fname );
49   writer->Update( );
50
51   return( 0 );
52 }
53
54 // eof - $RCSfile$