]> Creatis software - clitk.git/blobdiff - tools/clitkBlurImageGenericFilter.txx
Merge branch 'drop_files' of https://github.com/m-pilia/vv into m-pilia-drop_files
[clitk.git] / tools / clitkBlurImageGenericFilter.txx
index 6868320b31cc5fb8943dcf591e19391b56ccdcda..ac0a459b1f320548f28f7f11c9a0b94bf122e18a 100644 (file)
@@ -86,14 +86,25 @@ BlurImageGenericFilter<args_info_type>::UpdateWithInputImageType()
 
   //std::cout<<"mArgsInfo.variance_given"<<mArgsInfo.variance_given<<std::endl;
 
-  if (mArgsInfo.variance_given != dim) {
-    std::cerr << "The number of variance parameters must be equal to the image dimension." << std::endl;
-    return;
-  }
 
-  for (unsigned int i = 0; i < dim; i++) {
-    //std::cout<<"mArgsInfo.variance_arg[i]"<<mArgsInfo.variance_arg[i]<<std::endl;
-    varianceArray[i] = mArgsInfo.variance_arg[i];
+  //if (mArgsInfo.variance_given != dim) {
+  //  std::cerr << "The number of variance parameters must be equal to the image dimension." << std::endl;
+  //  return;
+  //}
+
+  if (mArgsInfo.variance_given && mArgsInfo.variance_given == dim) {
+    for (unsigned int i = 0; i < dim; i++) {
+      //std::cout<<"mArgsInfo.variance_arg[i]"<<mArgsInfo.variance_arg[i]<<std::endl;
+      varianceArray[i] = mArgsInfo.variance_arg[i];
+    }
+  } else if (mArgsInfo.variance_given && mArgsInfo.variance_given == 1) {
+      for (unsigned int i = 0; i < dim; i++) {
+          varianceArray[i] = mArgsInfo.variance_arg[0];
+      }
+  } else {
+      for (unsigned int i = 0; i < dim; i++) {
+          varianceArray[i] = 1.0;
+      }
   }
   // Reading input
   typename InputImageType::Pointer input = this->template GetInput<InputImageType>(0);
@@ -107,8 +118,11 @@ BlurImageGenericFilter<args_info_type>::UpdateWithInputImageType()
   typename DiscreteGaussianImageFilterType::Pointer gaussianFilter=DiscreteGaussianImageFilterType::New();
   gaussianFilter->SetInput(input);
   gaussianFilter->SetVariance(varianceArray);
+  gaussianFilter->SetUseImageSpacing(true);
   gaussianFilter->Update();
 
+  //std::cout<<"variance value="<<gaussianFilter->GetVariance()<<std::endl;
+
   // Write/Save results
   this->template SetNextOutput<OutputImageType>(gaussianFilter->GetOutput());
 }