天天看點

《itk實用demo》-Gabor算子

Gabor算子研究
int itkGaborImageSourceTest1( int argc, char *argv[] )
{
  typedef float PixelType;
  const unsigned int ImageDimension = ;
  typedef itk::Image<PixelType, ImageDimension> ImageType;   

  // Instantiate the filter
  typedef itk::GaborImageSource<ImageType> GaborSourceType;
  GaborSourceType::Pointer gaborImage = GaborSourceType::New();

  GaborSourceType::ArrayType sigma;
  sigma[] = ;
  sigma[] = ;
  sigma[] = ;

  ImageType::SpacingType spacing;  
  spacing.Fill(  );
  ImageType::SizeType size;  
  size.Fill( * );

  gaborImage->SetSpacing( spacing );
  gaborImage->SetSize( size );

  gaborImage->SetSigma( sigma );
  gaborImage->SetFrequency(  );
  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<ImageType> WriterType;
  WriterType::Pointer writer = WriterType::New();
  writer->SetFileName( argv[] );
  writer->SetInput( gaborImage->GetOutput() );
  writer->Update();

  return EXIT_SUCCESS;
}