]> Creatis software - clitk.git/blobdiff - itk/clitkAddRelativePositionConstraintToLabelImageFilter.txx
Remove vcl_math calls
[clitk.git] / itk / clitkAddRelativePositionConstraintToLabelImageFilter.txx
index 6d536186fbf5084da969d0750e05a4cc8cd3c8fb..0e3581ee2eeae844b806e15ecd5a3fabbc620897 100644 (file)
 #include <itkBinaryErodeImageFilter.h>
 #include <itkBinaryBallStructuringElement.h>
 #include <itkAddImageFilter.h>
-#if ITK_VERSION_MAJOR >= 4
-  #include <itkDivideImageFilter.h>
-#else
-  #include <itkDivideByConstantImageFilter.h>
-#endif
+#include <itkDivideImageFilter.h>
 
 // itk [Bloch et al] 
 #include "RelativePositionPropImageFilter.h"
@@ -65,6 +61,7 @@ AddRelativePositionConstraintToLabelImageFilter():
   FuzzyMapOnlyFlagOff();
   FastFlagOff();
   SetRadius(2.0);
+  SetK1(std::acos(-1.0)/2);
 }
 //--------------------------------------------------------------------
 
@@ -358,14 +355,14 @@ GenerateData()
   //--------------------------------------------------------------------
   // Step 1 : resample
   if (m_IntermediateSpacingFlag) {
-    StartNewStep("Resample object to intermediate spacing");  
+    StartNewStep("Resample object to intermediate spacing (" + toString(m_IntermediateSpacing) + ")");  
     typedef clitk::ResampleImageWithOptionsFilter<ImageType> ResampleFilterType;
     typename ResampleFilterType::Pointer resampleFilter = ResampleFilterType::New();
     resampleFilter->SetInput(working_image);
     resampleFilter->SetDefaultPixelValue(0);
     resampleFilter->SetOutputIsoSpacing(m_IntermediateSpacing);
     resampleFilter->SetGaussianFilteringEnabled(false);
-    //    resampleFilter->SetVerboseOptions(true);
+    //resampleFilter->SetVerboseOptions(true);
     resampleFilter->Update();
     working_image = resampleFilter->GetOutput();
     StopCurrentStep<ImageType>(working_image);
@@ -387,12 +384,9 @@ GenerateData()
     relPosFilter->SetInput(working_image);
     relPosFilter->SetAlpha1(m_Angle1[i]); // xy plane
     relPosFilter->SetAlpha2(m_Angle2[i]);
-    relPosFilter->SetK1(M_PI/2.0); // Opening parameter, default = pi/2
-
-    // relPosFilter->SetFast(true);
-    // relPosFilter->SetRadius(1); // seems sufficient in this case
-
+    relPosFilter->SetK1(GetK1());// M_PI/2.0); // Opening parameter, default = pi/2
     // relPosFilter->SetVerboseProgress(true);
+
     relPosFilter->Update();
     relPos = relPosFilter->GetOutput();
 
@@ -416,15 +410,9 @@ GenerateData()
 
   // Divide by the number of relpos
   if (GetNumberOfAngles() != 1) {
-#if ITK_VERSION_MAJOR >= 4
     typedef itk::DivideImageFilter<FloatImageType, FloatImageType, FloatImageType> DivideFilter;
     typename DivideFilter::Pointer divideFilter = DivideFilter::New();
     divideFilter->SetConstant2(GetNumberOfAngles());
-#else
-    typedef itk::DivideByConstantImageFilter<FloatImageType, float, FloatImageType> DivideFilter;
-    typename DivideFilter::Pointer divideFilter = DivideFilter::New();
-    divideFilter->SetConstant(GetNumberOfAngles());
-#endif
     divideFilter->SetInput(m_FuzzyMap);
     divideFilter->Update();
     m_FuzzyMap = divideFilter->GetOutput();
@@ -444,6 +432,7 @@ GenerateData()
       resampleFilter->SetGaussianFilteringEnabled(false);
       resampleFilter->Update();
       relPos = m_FuzzyMap = resampleFilter->GetOutput();
+      StopCurrentStep<FloatImageType>(relPos);
 
       // Need to put exactly the same size
       if (relPos->GetLargestPossibleRegion() != input->GetLargestPossibleRegion()) {