#ifndef clitkMedianImageGenericFilter_txx #define clitkMedianImageGenericFilter_txx /* ================================================= * @file clitkMedianImageGenericFilter.txx * @author Bharath Navalapakkam * @date 20 March 2010 * * @brief * ===================================================*/ // itk include #include "itkMedianImageFilter.h" #include "itkImage.h" namespace clitk { //-------------------------------------------------------------------- template MedianImageGenericFilter::MedianImageGenericFilter(): ImageToImageGenericFilter("MedianImage") { InitializeImageType<2>(); InitializeImageType<3>(); InitializeImageType<4>(); } //-------------------------------------------------------------------- //-------------------------------------------------------------------- template template void MedianImageGenericFilter::InitializeImageType() { ADD_DEFAULT_IMAGE_TYPES(Dim); } //-------------------------------------------------------------------- //-------------------------------------------------------------------- template void MedianImageGenericFilter::SetArgsInfo(const args_info_type & a) { mArgsInfo=a; SetIOVerbose(mArgsInfo.verbose_flag); if (mArgsInfo.input_given) { SetInputFilename(mArgsInfo.input_arg); } if (mArgsInfo.output_given) { SetOutputFilename(mArgsInfo.output_arg); } } //-------------------------------------------------------------------- //-------------------------------------------------------------------- // Update with the number of dimensions and the pixeltype //-------------------------------------------------------------------- template template void MedianImageGenericFilter::UpdateWithInputImageType() { // Reading input typename InputImageType::Pointer input = this->template GetInput(0); // Typedef typedef typename InputImageType::PixelType PixelType; // typedef itk::Image OutputImageType; // Main filter typedef itk::Image OutputImageType; typename InputImageType::SizeType indexRadius; // Filter typedef itk::MedianImageFilter MedianImageFilterType; typename MedianImageFilterType::Pointer thresholdFilter=MedianImageFilterType::New(); thresholdFilter->SetInput(input); indexRadius[0]=mArgsInfo.radius_arg[0]; indexRadius[1]=mArgsInfo.radius_arg[1]; indexRadius[2]=mArgsInfo.radius_arg[2]; // indexRadius[0] = 1; // indexRadius[1] = 1; thresholdFilter->SetRadius( indexRadius ); typename OutputImageType::Pointer outputImage = thresholdFilter->GetOutput(); thresholdFilter->Update(); // Write/Save results this->template SetNextOutput(outputImage); } //-------------------------------------------------------------------- }//end clitk #endif //#define clitkMedianImageGenericFilter_txx