#include #include #include // ------------------------------------------------------------------------- typedef itk::Image< float, 2 > TImage; typedef fpa::Image::FastMarching< TImage, TImage > TFilter; typedef itk::ImageFileWriter< TImage > TWriter; // ------------------------------------------------------------------------- int main( int argc, char* argv[] ) { TImage::SizeType size; size.Fill( 512 ); TImage::SpacingType spac; spac[ 0 ] = 0.4; spac[ 1 ] = 1.7; TImage::Pointer input = TImage::New( ); input->SetRegions( size ); input->SetSpacing( spac ); input->Allocate( ); input->FillBuffer( 1 ); TImage::RegionType region = input->GetLargestPossibleRegion( ); TImage::PointType p0, p1, p2, p3, p4; input->TransformIndexToPhysicalPoint( region.GetIndex( ), p0 ); input->TransformIndexToPhysicalPoint( region.GetIndex( ) + region.GetSize( ), p1 ); p2 = ( p0.GetVectorFromOrigin( ) + p1.GetVectorFromOrigin( ) ) * 0.5; p3 = ( p0.GetVectorFromOrigin( ) + p1.GetVectorFromOrigin( ) ) * 0.25; p4 = ( p0.GetVectorFromOrigin( ) + p1.GetVectorFromOrigin( ) ) * 0.75; TImage::IndexType s0, s1, s2; input->TransformPhysicalPointToIndex( p2, s0 ); input->TransformPhysicalPointToIndex( p3, s1 ); input->TransformPhysicalPointToIndex( p4, s2 ); TFilter::Pointer filter = TFilter::New( ); filter->SetInput( input ); filter->AddSeed( s0, 0 ); filter->AddSeed( s1, 0 ); filter->AddSeed( s2, 0 ); filter->Update( ); TWriter::Pointer writer = TWriter::New( ); writer->SetInput( filter->GetOutput( ) ); writer->SetFileName( "FastMarching_00.mhd" ); writer->Update( ); return( 0 ); } // eof - $RCSfile$