+/*=========================================================================
+ Program: vv http://www.creatis.insa-lyon.fr/rio/vv
+
+ Authors belong to:
+ - University of LYON http://www.universite-lyon.fr/
+ - Léon Bérard cancer center http://www.centreleonberard.fr
+ - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the copyright notices for more information.
+
+ It is distributed under dual licence
+
+ - BSD See included LICENSE.txt file
+ - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+===========================================================================*/
#ifndef clitkMedianImageGenericFilter_txx
#define clitkMedianImageGenericFilter_txx
void MedianImageGenericFilter<args_info_type>::SetArgsInfo(const args_info_type & a)
{
mArgsInfo=a;
- SetIOVerbose(mArgsInfo.verbose_flag);
+ this->SetIOVerbose(mArgsInfo.verbose_flag);
if (mArgsInfo.input_given) {
- SetInputFilename(mArgsInfo.input_arg);
+ this->SetInputFilename(mArgsInfo.input_arg);
}
if (mArgsInfo.output_given) {
- SetOutputFilename(mArgsInfo.output_arg);
+ this->SetOutputFilename(mArgsInfo.output_arg);
}
}
// typedef itk::Image<PixelType,InputImageType::ImageDimension> OutputImageType;
- // Main filter
- typedef itk::Image<PixelType, InputImageType::ImageDimension> OutputImageType;
- typename InputImageType::SizeType indexRadius;
-
// Filter
- typedef itk::MedianImageFilter<InputImageType, OutputImageType> 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();
+ typedef itk::MedianImageFilter<InputImageType, InputImageType> MedianImageFilterType;
+ typename MedianImageFilterType::Pointer medianFilter=MedianImageFilterType::New();
+ typename MedianImageFilterType::InputSizeType radius;
+ radius.Fill(1);
+ medianFilter->SetInput(input);
+
+ if(mArgsInfo.radius_given) {
+ for (unsigned i = 0; i < InputImageType::ImageDimension; ++i)
+ radius[i]=mArgsInfo.radius_arg[i];
+ }
+ //
+ std::cout<<"radius median filter= "<<radius<<std::endl;
+ //
+ medianFilter->SetRadius( radius );
+ medianFilter->Update();
// Write/Save results
- this->template SetNextOutput<OutputImageType>(outputImage);
+ typename InputImageType::Pointer outputImage = medianFilter->GetOutput();
+ this->template SetNextOutput<InputImageType>(outputImage);
}
//--------------------------------------------------------------------