X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2Fexamples%2Fexample_Image_Dijkstra_AbsoluteDifferenceCost.cxx;fp=appli%2Fexamples%2Fexample_Image_Dijkstra_AbsoluteDifferenceCost.cxx;h=0000000000000000000000000000000000000000;hb=9c4035dc18f4e44a92cda3e3c1c6e583c94ef06b;hp=47affc130bb9e606ae7c812713a04c54a7cdb6ba;hpb=e832f438861464a8d521464b61be7e31c896adb8;p=FrontAlgorithms.git diff --git a/appli/examples/example_Image_Dijkstra_AbsoluteDifferenceCost.cxx b/appli/examples/example_Image_Dijkstra_AbsoluteDifferenceCost.cxx deleted file mode 100644 index 47affc1..0000000 --- a/appli/examples/example_Image_Dijkstra_AbsoluteDifferenceCost.cxx +++ /dev/null @@ -1,164 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -// ------------------------------------------------------------------------- -const unsigned int Dim = 3; -typedef float TInputPixel; -typedef float TOutputPixel; - -typedef itk::Image< TInputPixel, Dim > TInputImage; -typedef itk::Image< TOutputPixel, Dim > TOutputImage; -typedef itk::ImageToVTKImageFilter< TInputImage > TVTKInputImage; - -// ------------------------------------------------------------------------- -int main( int argc, char* argv[] ) -{ - if( argc < 8 ) - { - std::cerr - << "Usage: " << argv[ 0 ] - << " input_image input_seeds output_image" - << " neighborhood_order stop_at_one_front" - << " init_seed end_seed" - << std::endl; - return( 1 ); - - } // fi - std::string input_image_fn = argv[ 1 ]; - std::string input_seeds_fn = argv[ 2 ]; - std::string output_image_fn = argv[ 3 ]; - unsigned int neighborhood_order = std::atoi( argv[ 4 ] ); - bool stop_at_one_front = ( std::atoi( argv[ 5 ] ) != 0 ); - unsigned int init_seed = std::atoi( argv[ 6 ] ); - unsigned int end_seed = std::atoi( argv[ 7 ] ); - - // Read image - itk::ImageFileReader< TInputImage >::Pointer input_image_reader = - itk::ImageFileReader< TInputImage >::New( ); - input_image_reader->SetFileName( input_image_fn ); - try - { - input_image_reader->Update( ); - } - catch( itk::ExceptionObject& err ) - { - std::cerr - << "Error while reading image from " << input_image_fn << ": " - << err << std::endl; - return( 1 ); - - } // yrt - TInputImage::ConstPointer input_image = input_image_reader->GetOutput( ); - TVTKInputImage::Pointer vtk_input_image = TVTKInputImage::New( ); - vtk_input_image->SetInput( input_image ); - vtk_input_image->Update( ); - - // Show input image and let some interaction - fpa::VTK::ImageMPR view; - view.SetBackground( 0.3, 0.2, 0.8 ); - view.SetSize( 600, 600 ); - view.SetImage( vtk_input_image->GetOutput( ) ); - - // Allow some interaction - view.Render( ); - view.Start( ); - - // Prepare region grow filter and cost function - typedef fpa::Image::Dijkstra< TInputImage, TOutputImage > TFilter; - typedef fpa::Image::Functors:: - ImageAbsoluteDifferenceCostFunction< TFilter::TInputImage, TFilter::TResult > - TCost; - - TCost::Pointer cost = TCost::New( ); - - TFilter::Pointer filter = TFilter::New( ); - filter->SetInput( input_image ); - filter->SetCostFunction( cost ); - filter->SetConversionFunction( NULL ); - filter->SetNeighborhoodOrder( neighborhood_order ); - filter->SetStopAtOneFront( stop_at_one_front ); - - // Get user-given seeds - std::ifstream input_seeds_str( input_seeds_fn.c_str( ) ); - if( !input_seeds_str ) - { - std::cerr << "Error opening \"" << input_seeds_fn << "\"" << std::endl; - return( 1 ); - - } // fi - - unsigned int nSeeds; - input_seeds_str >> nSeeds; - std::vector< TInputImage::IndexType > input_seeds; - for( unsigned int s = 0; s < nSeeds; s++ ) - { - TInputImage::IndexType idx; - input_seeds_str >> idx[ 0 ] >> idx[ 1 ] >> idx[ 2 ]; - input_seeds.push_back( idx ); - - } // rof - input_seeds_str.close( ); - - filter->AddSeed( input_seeds[ init_seed ], 0 ); - filter->AddSeed( input_seeds[ end_seed ], 0 ); - - // Prepare graphical debugger - typedef fpa::VTK::Image3DObserver< TFilter, vtkRenderWindow > TDebugger; - TDebugger::Pointer debugger = TDebugger::New( ); - debugger->SetRenderWindow( view.GetWindow( ) ); - debugger->SetRenderPercentage( 0.0001 ); - filter->AddObserver( itk::AnyEvent( ), debugger ); - filter->ThrowEventsOn( ); - - // Go! - filter->Update( ); - - // Save final total cost map - itk::ImageFileWriter< TOutputImage >::Pointer output_image_writer = - itk::ImageFileWriter< TOutputImage >::New( ); - output_image_writer->SetFileName( output_image_fn ); - output_image_writer->SetInput( filter->GetOutput( ) ); - try - { - output_image_writer->Update( ); - } - catch( itk::ExceptionObject& err ) - { - std::cerr - << "Error while writing image to " << output_image_fn << ": " - << err << std::endl; - return( 1 ); - - } // yrt - - return( 0 ); -} - -// eof - $RCSfile$