X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=inline;f=examples%2FCreateMoriInputImage.cxx;fp=examples%2FCreateMoriInputImage.cxx;h=144ed6e515350b3b1979901e0e2939e9cb3098c8;hb=20916948d3878c722b73e7ee86df87ff2df9d0fe;hp=0000000000000000000000000000000000000000;hpb=1b83bb346b8416eab760148e7ec92eb8b4a9024c;p=FrontAlgorithms.git diff --git a/examples/CreateMoriInputImage.cxx b/examples/CreateMoriInputImage.cxx new file mode 100644 index 0000000..144ed6e --- /dev/null +++ b/examples/CreateMoriInputImage.cxx @@ -0,0 +1,64 @@ +#include +#include +#include +#include +#include + +// ------------------------------------------------------------------------- +static const unsigned int Dim = 2; +typedef short TInputPixel; +typedef float TOutputPixel; +typedef itk::Image< TInputPixel, Dim > TInputImage; +typedef itk::Image< TOutputPixel, Dim > TOutputImage; + +// ------------------------------------------------------------------------- +int main( int argc, char* argv[] ) +{ + // Command configuration + if( argc < 3 ) + { + std::cerr + << "Usage: " << argv[ 0 ] << " input_image output_image" + << std::endl; + return( 1 ); + + } // fi + std::string input_image_filename = argv[ 1 ]; + std::string output_image_filename = argv[ 2 ]; + + // Read image + typedef itk::ImageFileReader< TInputImage > TReader; + TReader::Pointer reader = TReader::New( ); + reader->SetFileName( input_image_filename ); + + // Distance map + typedef itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage > TFilter; + TFilter::Pointer filter = TFilter::New( ); + filter->SetInput( reader->GetOutput( ) ); + filter->SetBackgroundValue( 0 ); + filter->InsideIsPositiveOn( ); + filter->SquaredDistanceOff( ); + filter->UseImageSpacingOn( ); + + // Write image + typedef itk::ImageFileWriter< TOutputImage > TWriter; + TWriter::Pointer writer = TWriter::New( ); + writer->SetInput( filter->GetOutput( ) ); + writer->SetFileName( output_image_filename ); + + // Execute pipeline + try + { + writer->Update( ); + } + catch( std::exception& err ) + { + std::cerr << "Error caught: " << err.what( ) << std::endl; + return( 1 ); + + } // yrt + + return( 0 ); +} + +// eof - $RCSfile$