2 #include <itkImageFileWriter.h>
3 #include <fpa/Image/FastMarching.h>
5 // -------------------------------------------------------------------------
6 typedef itk::Image< float, 2 > TImage;
7 typedef fpa::Image::FastMarching< TImage, TImage > TFilter;
8 typedef itk::ImageFileWriter< TImage > TWriter;
10 // -------------------------------------------------------------------------
11 int main( int argc, char* argv[] )
13 TImage::SizeType size;
16 TImage::SpacingType spac;
20 TImage::Pointer input = TImage::New( );
21 input->SetRegions( size );
22 input->SetSpacing( spac );
24 input->FillBuffer( 1 );
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
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 );
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 );
47 TWriter::Pointer writer = TWriter::New( );
48 writer->SetInput( filter->GetOutput( ) );
49 writer->SetFileName( "FastMarching_00.mhd" );