#include "itkImageFileReader.h" #include "itkImageFileWriter.h" #include "itkCommand.h" #include "itkSimpleFilterWatcher.h" #include "itkRGBPixel.h" #include "itkFFTShiftImageFilter.h" int main(int argc, char * argv[]) { if( argc != 4 ) { std::cerr << "usage: " << argv[0] << " inputImage outputImage inverse" << std::endl; std::cerr << " inputImage: The input image." << std::endl; std::cerr << " outputImage: The output image." << std::endl; std::cerr << " inverse: 0, to perform a forward transform, or 1 to perform" << std::endl; std::cerr << " an inverse transform." << std::endl; exit(1); } const int dim = 3; typedef itk::RGBPixel< unsigned char > PType; typedef itk::Image< PType, dim > IType; typedef itk::ImageFileReader< IType > ReaderType; ReaderType::Pointer reader = ReaderType::New(); reader->SetFileName( argv[1] ); typedef itk::FFTShiftImageFilter< IType, IType > FilterType; FilterType::Pointer filter = FilterType::New(); filter->SetInput( reader->GetOutput() ); filter->SetInverse( atoi( argv[3] ) ); itk::SimpleFilterWatcher watcher(filter, "filter"); typedef itk::ImageFileWriter< IType > WriterType; WriterType::Pointer writer = WriterType::New(); writer->SetInput( filter->GetOutput() ); writer->SetFileName( argv[2] ); writer->Update(); return 0; }