2 #include <itkImageFileReader.h>
3 #include <itkSignedMaurerDistanceMapImageFilter.h>
4 #include <itkMinimumMaximumImageCalculator.h>
5 #include <fpa/Image/SkeletonFilter.h>
7 // -------------------------------------------------------------------------
8 typedef itk::Image< double, 2 > TImage;
9 typedef itk::ImageFileReader< TImage > TReader;
10 typedef itk::SignedMaurerDistanceMapImageFilter< TImage, TImage > TDMap;
11 typedef itk::MinimumMaximumImageCalculator< TImage > TMinMax;
12 typedef fpa::Image::SkeletonFilter< TImage > TFilter;
14 // -------------------------------------------------------------------------
15 int main( int argc, char* argv[] )
20 << "Usage: " << argv[ 0 ]
21 << " input_filename" << std::endl;
25 std::string in_fname = argv[ 1 ];
27 TReader::Pointer reader = TReader::New( );
28 reader->SetFileName( in_fname );
30 TDMap::Pointer dmap = TDMap::New( );
31 dmap->SetInput( reader->GetOutput( ) );
32 dmap->InsideIsPositiveOn( );
33 dmap->SquaredDistanceOff( );
34 dmap->UseImageSpacingOn( );
37 TMinMax::Pointer minmax = TMinMax::New( );
38 minmax->SetImage( dmap->GetOutput( ) );
41 TFilter::Pointer filter = TFilter::New( );
42 filter->SetInput( dmap->GetOutput( ) );
43 filter->AddSeed( minmax->GetIndexOfMaximum( ), 0 );