#include #include #include #include #include // ------------------------------------------------------------------------- typedef itk::Image< double, 2 > TImage; typedef itk::ImageFileReader< TImage > TReader; typedef itk::SignedMaurerDistanceMapImageFilter< TImage, TImage > TDMap; typedef itk::MinimumMaximumImageCalculator< TImage > TMinMax; typedef fpa::Image::SkeletonFilter< TImage > TFilter; // ------------------------------------------------------------------------- int main( int argc, char* argv[] ) { if( argc < 2 ) { std::cerr << "Usage: " << argv[ 0 ] << " input_filename" << std::endl; return( 1 ); } // fi std::string in_fname = argv[ 1 ]; TReader::Pointer reader = TReader::New( ); reader->SetFileName( in_fname ); TDMap::Pointer dmap = TDMap::New( ); dmap->SetInput( reader->GetOutput( ) ); dmap->InsideIsPositiveOn( ); dmap->SquaredDistanceOff( ); dmap->UseImageSpacingOn( ); dmap->Update( ); TMinMax::Pointer minmax = TMinMax::New( ); minmax->SetImage( dmap->GetOutput( ) ); minmax->Compute( ); TFilter::Pointer filter = TFilter::New( ); filter->SetInput( dmap->GetOutput( ) ); filter->AddSeed( minmax->GetIndexOfMaximum( ), 0 ); filter->Update( ); return( 0 ); } // eof - $RCSfile$