#include #include #include #include "itkImage.h" #include "itkImageFileWriter.h" #include "itkImageFileReader.h" #include "itkMedianImageFilter.h" typedef float PixelType; typedef itk::Image< PixelType, 3 > ScalarImageType; // definitions for writing the image typedef itk::ImageFileWriter< ScalarImageType > WriterType; typedef itk::ImageFileReader ReaderType; //median filter typedef itk::MedianImageFilter VolMedian; /*********************************/ /* beginning of MAIN routine */ /*********************************/ int main(int argc, char ** argv) { int med_rad=3; /* ITK objects needed for processing the volume */ VolMedian::Pointer volmedian = VolMedian::New(); ReaderType::Pointer reader = ReaderType::New(); WriterType::Pointer writer = WriterType::New(); ScalarImageType::SizeType vol_rad; if (argc != 2){ printf("Little program to test itk median filter\n"); printf("Usage: %s input.mhd\n",argv[0]); printf("Only itk registered data file types to avoid extra\n"); printf("import filter code.\n"); printf("Median radius fixet at %i\n",med_rad); return(0); } vol_rad[0] = med_rad; vol_rad[1] = med_rad; vol_rad[2] = med_rad; volmedian->SetRadius(vol_rad); printf("...3d Median ... itk radius %i ..\n",med_rad); volmedian->SetInput(reader->GetOutput()); /* add the volume writer */ writer->SetInput(volmedian->GetOutput()); writer->SetFileName( "mediantest.mhd" ); reader->SetFileName(argv[1]); try { writer->Update(); }catch( itk::ExceptionObject & exp ) { std::cerr << "Exception caught 04 writer update !" << std::endl; std::cerr << exp << std::endl; } printf("All done\n"); return (0); }