]> Creatis software - clitk.git/blobdiff - itk/clitkSliceBySliceRelativePositionFilter.txx
Temp fix (see http://kingkong.grid.creatis.insa-lyon.fr:9002/issues/274)
[clitk.git] / itk / clitkSliceBySliceRelativePositionFilter.txx
index e3801024bf389f93a0188ae367afb6ae168107a7..6a4b0f49ab507a089842ef723ab58f169f3ac61f 100644 (file)
@@ -32,7 +32,11 @@ SliceBySliceRelativePositionFilter():
 {
   SetDirection(2);
   UniqueConnectedComponentBySliceOff();
-  SetIgnoreEmptySliceObject(false);
+  SetIgnoreEmptySliceObjectFlag(false);
+  UseASingleObjectConnectedComponentBySliceFlagOn();
+  this->VerboseStepFlagOff();
+  this->WriteStepFlagOff();
+  this->SetCombineWithOrFlag(false);
 }
 //--------------------------------------------------------------------
 
@@ -70,7 +74,7 @@ PrintOptions()
   DD(this->GetDirection());
   DD((int)this->GetObjectBackgroundValue());
   DDV(this->GetOrientationTypeString(), (uint)this->GetNumberOfAngles());
-  DD(this->GetResampleBeforeRelativePositionFilter());
+  DD(this->GetIntermediateSpacingFlag());
   DD(this->GetIntermediateSpacing());
   DD(this->GetFuzzyThreshold());
   DD(this->GetUniqueConnectedComponentBySlice());
@@ -172,18 +176,23 @@ GenerateOutputInformation()
   // Perform slice by slice relative position
   this->StartNewStep("Perform slice by slice relative position");
   for(unsigned int i=0; i<mInputSlices.size(); i++) {
-    // Select main CC in each object slice (required ?)
+    
+    // Count the number of CCL (allow to ignore empty slice)
     int nb=0;
     mObjectSlices[i] = LabelizeAndCountNumberOfObjects<SliceType>(mObjectSlices[i], 0, true, 1, nb);
-    if ((!GetIgnoreEmptySliceObject()) || (nb!=0)) {
-      mObjectSlices[i] = KeepLabels<SliceType>(mObjectSlices[i], 0, 1, 1, 1, true);
+    if ((!GetIgnoreEmptySliceObjectFlag()) || (nb!=0)) {
+
+      // Select or not a single CCL ?
+      if (GetUseASingleObjectConnectedComponentBySliceFlag()) {
+        mObjectSlices[i] = KeepLabels<SliceType>(mObjectSlices[i], 0, 1, 1, 1, true);
+      }
 
       // Relative position
       typedef clitk::AddRelativePositionConstraintToLabelImageFilter<SliceType> RelPosFilterType;
       typename RelPosFilterType::Pointer relPosFilter = RelPosFilterType::New();
+
       relPosFilter->VerboseStepFlagOff();
       relPosFilter->WriteStepFlagOff();
-      relPosFilter->SetCurrentStepBaseId(this->GetCurrentStepId());
       relPosFilter->SetBackgroundValue(this->GetBackgroundValue());
       relPosFilter->SetInput(mInputSlices[i]); 
       relPosFilter->SetInputObject(mObjectSlices[i]); 
@@ -194,7 +203,7 @@ GenerateOutputInformation()
       relPosFilter->SetInverseOrientationFlag(this->GetInverseOrientationFlag());
       //relPosFilter->SetOrientationType(this->GetOrientationType());
       relPosFilter->SetIntermediateSpacing(this->GetIntermediateSpacing());
-      relPosFilter->SetResampleBeforeRelativePositionFilter(this->GetResampleBeforeRelativePositionFilter());
+      relPosFilter->SetIntermediateSpacingFlag(this->GetIntermediateSpacingFlag());
       relPosFilter->SetFuzzyThreshold(this->GetFuzzyThreshold());
       relPosFilter->AutoCropFlagOff(); // important ! because we join the slices after this loop
       relPosFilter->SetCombineWithOrFlag(this->GetCombineWithOrFlag());