2 #include <itkImageFileReader.h>
3 #include <itkImageFileWriter.h>
4 #include <fpa/Image/MoriRegionGrow.h>
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;
13 // -------------------------------------------------------------------------
14 int main( int argc, char* argv[] )
19 << "Usage: " << argv[ 0 ]
20 << " input_filename output_filename output_aux_filename" << std::endl;
24 std::string in_fname = argv[ 1 ];
25 std::string out_fname = argv[ 2 ];
26 std::string out_aux_fname = argv[ 3 ];
30 TReader::Pointer reader = TReader::New( );
31 reader->SetFileName( in_fname );
33 TImage::IndexType seed;
37 TFilter::Pointer filter = TFilter::New( );
38 filter->SetInput( reader->GetOutput( ) );
39 filter->SetLower( 0 );
40 filter->SetUpper( 255 );
42 filter->SetInsideValue( 255 );
43 filter->SetOutsideValue( 0 );
44 filter->SetSeed( seed );
46 TWriter::Pointer writer = TWriter::New( );
47 writer->SetInput( filter->GetOutput( ) );
48 writer->SetFileName( out_fname );
51 TAuxWriter::Pointer aux_writer = TAuxWriter::New( );
52 aux_writer->SetInput( filter->GetAuxiliaryImage( ) );
53 aux_writer->SetFileName( out_aux_fname );
54 aux_writer->Update( );