]> Creatis software - FrontAlgorithms.git/blob - examples/FastMarching_00.cxx
41ed61e7a893acbfb833a03f58a2e189413fad33
[FrontAlgorithms.git] / examples / FastMarching_00.cxx
1 #include <itkImage.h>
2 #include <itkImageFileWriter.h>
3 #include <fpa/Image/FastMarching.h>
4
5 // -------------------------------------------------------------------------
6 typedef itk::Image< float, 2 >                     TImage;
7 typedef fpa::Image::FastMarching< TImage, TImage > TFilter;
8 typedef itk::ImageFileWriter< TImage >             TWriter;
9
10 // -------------------------------------------------------------------------
11 int main( int argc, char* argv[] )
12 {
13   TImage::SizeType size;
14   size.Fill( 512 );
15
16   TImage::SpacingType spac;
17   spac[ 0 ] = 0.4;
18   spac[ 1 ] = 1.7;
19
20   TImage::Pointer input = TImage::New( );
21   input->SetRegions( size );
22   input->SetSpacing( spac );
23   input->Allocate( );
24   input->FillBuffer( 1 );
25
26   TImage::RegionType region = input->GetLargestPossibleRegion( );
27   TImage::PointType p0, p1, p2, p3, p4;
28   input->TransformIndexToPhysicalPoint( region.GetIndex( ), p0 );
29   input->TransformIndexToPhysicalPoint(
30     region.GetIndex( ) + region.GetSize( ), p1
31     );
32   p2 = ( p0.GetVectorFromOrigin( ) + p1.GetVectorFromOrigin( ) ) * 0.5;
33   p3 = ( p0.GetVectorFromOrigin( ) + p1.GetVectorFromOrigin( ) ) * 0.25;
34   p4 = ( p0.GetVectorFromOrigin( ) + p1.GetVectorFromOrigin( ) ) * 0.75;
35   TImage::IndexType s0, s1, s2;
36   input->TransformPhysicalPointToIndex( p2, s0 );
37   input->TransformPhysicalPointToIndex( p3, s1 );
38   input->TransformPhysicalPointToIndex( p4, s2 );
39
40   TFilter::Pointer filter = TFilter::New( );
41   filter->SetInput( input );
42   filter->AddSeed( s0, 0 );
43   filter->AddSeed( s1, 0 );
44   filter->AddSeed( s2, 0 );
45   filter->Update( );
46
47   TWriter::Pointer writer = TWriter::New( );
48   writer->SetInput( filter->GetOutput( ) );
49   writer->SetFileName( "FastMarching_00.mhd" );
50   writer->Update( );
51
52   return( 0 );
53 }
54
55 // eof - $RCSfile$