]> 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 typedef itk::ImageFileWriter< TFilter::TAuxImage >   TAuxWriter;
12
13 // -------------------------------------------------------------------------
14 int main( int argc, char* argv[] )
15 {
16   if( argc < 4 )
17   {
18     std::cerr
19       << "Usage: " << argv[ 0 ]
20       << " input_filename output_filename output_aux_filename" << std::endl;
21     return( 1 );
22
23   } // fi
24   std::string in_fname = argv[ 1 ];
25   std::string out_fname = argv[ 2 ];
26   std::string out_aux_fname = argv[ 3 ];
27   int seed_x = 111;
28   int seed_y = 91;
29
30   TReader::Pointer reader = TReader::New( );
31   reader->SetFileName( in_fname );
32
33   TImage::IndexType seed;
34   seed[ 0 ] = seed_x;
35   seed[ 1 ] = seed_y;
36
37   TFilter::Pointer filter = TFilter::New( );
38   filter->SetInput( reader->GetOutput( ) );
39   filter->SetLower( 0 );
40   filter->SetUpper( 255 );
41   filter->SetStep( 1 );
42   filter->SetInsideValue( 255 );
43   filter->SetOutsideValue( 0 );
44   filter->SetSeed( seed );
45
46   TWriter::Pointer writer = TWriter::New( );
47   writer->SetInput( filter->GetOutput( ) );
48   writer->SetFileName( out_fname );
49   writer->Update( );
50
51   TAuxWriter::Pointer aux_writer = TAuxWriter::New( );
52   aux_writer->SetInput( filter->GetAuxiliaryImage( ) );
53   aux_writer->SetFileName( out_aux_fname );
54   aux_writer->Update( );
55   
56
57   return( 0 );
58 }
59
60 // eof - $RCSfile$