]> Creatis software - clitk.git/blobdiff - tools/clitkMedianImageGenericFilter.txx
Add clitkImage2Dicom tool
[clitk.git] / tools / clitkMedianImageGenericFilter.txx
old mode 100755 (executable)
new mode 100644 (file)
index 07ce074..75567c4
@@ -1,3 +1,20 @@
+/*=========================================================================
+  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
 
@@ -44,13 +61,13 @@ template<class args_info_type>
 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);
   }
 
 }
@@ -72,29 +89,26 @@ MedianImageGenericFilter<args_info_type>::UpdateWithInputImageType()
 
   // 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);
 }
 
 //--------------------------------------------------------------------