#include "itkGaborImageSource.h" #include "itkImageFileWriter.h" int itkGaborImageSourceTest0( int argc, char *argv[] ) { typedef float PixelType; const unsigned int ImageDimension = 2; typedef itk::Image ImageType; // Instantiate the filter typedef itk::GaborImageSource GaborSourceType; GaborSourceType::Pointer gaborImage = GaborSourceType::New(); GaborSourceType::ArrayType sigma; sigma[0] = 2.0; sigma[1] = 5.0; ImageType::SpacingType spacing; spacing.Fill( 0.25 ); ImageType::SizeType size; size.Fill( 64*4 ); gaborImage->SetSpacing( spacing ); gaborImage->SetSize( size ); gaborImage->SetSigma( sigma ); gaborImage->SetFrequency( 0.1 ); gaborImage->SetCalculateImaginaryPart( false ); try { gaborImage->Update(); } catch (itk::ExceptionObject & err) { std::cout << "ExceptionObject caught !" << std::endl; std::cout << err << std::endl; return EXIT_FAILURE; } typedef itk::ImageFileWriter WriterType; WriterType::Pointer writer = WriterType::New(); writer->SetFileName( argv[1] ); writer->SetInput( gaborImage->GetOutput() ); writer->Update(); return EXIT_SUCCESS; } int itkGaborImageSourceTest1( int argc, char *argv[] ) { typedef float PixelType; const unsigned int ImageDimension = 3; typedef itk::Image ImageType; // Instantiate the filter typedef itk::GaborImageSource GaborSourceType; GaborSourceType::Pointer gaborImage = GaborSourceType::New(); GaborSourceType::ArrayType sigma; sigma[0] = 2.0; sigma[1] = 10.0; sigma[2] = 10.0; ImageType::SpacingType spacing; spacing.Fill( 0.5 ); ImageType::SizeType size; size.Fill( 64*2 ); gaborImage->SetSpacing( spacing ); gaborImage->SetSize( size ); gaborImage->SetSigma( sigma ); gaborImage->SetFrequency( 0.1 ); gaborImage->SetCalculateImaginaryPart( true ); try { gaborImage->Update(); } catch (itk::ExceptionObject & err) { std::cout << "ExceptionObject caught !" << std::endl; std::cout << err << std::endl; return EXIT_FAILURE; } typedef itk::ImageFileWriter WriterType; WriterType::Pointer writer = WriterType::New(); writer->SetFileName( argv[1] ); writer->SetInput( gaborImage->GetOutput() ); writer->Update(); return EXIT_SUCCESS; } int main( int argc, char *argv[] ) { if ( argc < 3 ) { std::cout << "Usage: " << argv[0] << " outputImage whichTest" << std::endl; return EXIT_FAILURE; } int test = EXIT_FAILURE; if ( atoi( argv[2] ) == 0 ) { test = itkGaborImageSourceTest0( argc, argv ); } else { test = itkGaborImageSourceTest1( argc, argv ); } return test; }