6 #include <itkImageFileReader.h>
7 #include <itkImageFileWriter.h>
8 #include <itkSimpleFilterWatcher.h>
10 #include <cpPlugins/Extensions/Algorithms/MultiScaleGaussianImageFilter.h>
12 // -------------------------------------------------------------------------
14 typedef float TScalar;
15 const unsigned int Dimension = 2;
17 typedef itk::CovariantVector< TScalar, Dimension > TVector;
18 typedef itk::Image< TPixel, Dimension > TImage;
19 typedef itk::Image< TVector, Dimension > TGradient;
21 // -------------------------------------------------------------------------
22 int main( int argc, char* argv[] )
27 << "Usage: " << argv[ 0 ]
28 << " input_image output_gradient s0 s1 ..."
33 std::string image_fn = argv[ 1 ];
34 std::string gradient_fn = argv[ 2 ];
37 itk::ImageFileReader< TImage >::Pointer image_reader =
38 itk::ImageFileReader< TImage >::New( );
39 image_reader->SetFileName( image_fn );
42 image_reader->Update( );
44 catch( itk::ExceptionObject& err )
46 std::cerr << err << std::endl;
52 typedef cpPlugins::Extensions::Algorithms::
53 MultiScaleGaussianImageFilter< TImage, TGradient > TFilter;
55 TFilter::Pointer filter = TFilter::New( );
56 filter->SetFilterToGradient( );
57 filter->SetInput( image_reader->GetOutput( ) );
58 for( int i = 3; i < argc; ++i )
59 filter->AddScale( std::atof( argv[ i ] ) );
62 itk::SimpleFilterWatcher filter_watcher( filter, "Gradient" );
66 itk::ImageFileWriter< TGradient >::Pointer gradient_writer =
67 itk::ImageFileWriter< TGradient >::New( );
68 gradient_writer->SetInput( filter->GetOutput( ) );
69 gradient_writer->SetFileName( gradient_fn );
72 gradient_writer->Update( );
74 catch( itk::ExceptionObject& err )
76 std::cerr << err << std::endl;