]> Creatis software - clitk.git/blobdiff - segmentation/clitkStructuresExtractionFilter.txx
Merge branch 'master' of git.creatis.insa-lyon.fr:clitk
[clitk.git] / segmentation / clitkStructuresExtractionFilter.txx
index 3a3e0ab7c7758cbb26306b5330c028cfdf1b9e79..d78586169849f9288b087fab88e2bb3f07f6071e 100644 (file)
@@ -47,11 +47,12 @@ AddRelativePositionListFilename(std::string s) {
 template <class TImageType>
 typename clitk::StructuresExtractionFilter<TImageType>::MaskImagePointer
 clitk::StructuresExtractionFilter<TImageType>::
-ApplyRelativePositionList(std::string name, MaskImageType * input) 
+ApplyRelativePositionList(std::string name, MaskImageType * input, bool overlap
 { 
   // Create all RelativePositionList
   for(unsigned int i=0; i<mListOfRelativePositionListFilename.size(); i++) {
     RelPosListPointer rpl = RelPosListType::New();
+    rpl->SetDisplayUsedStructuresOnlyFlag(this->GetDisplayUsedStructuresOnlyFlag());
     rpl->SetAFDB(GetAFDB());
     rpl->Read(mListOfRelativePositionListFilename[i]);
     std::string s = rpl->GetInputName();
@@ -71,8 +72,14 @@ ApplyRelativePositionList(std::string name, MaskImageType * input)
     relpos->SetCurrentStepNumber(GetCurrentStepNumber());
     relpos->SetWriteStepFlag(GetWriteStepFlag());
     relpos->SetInput(input);
+    if (!this->GetDisplayUsedStructuresOnlyFlag() && overlap) {
+      std::string n = name.substr(8,3);
+      MaskImagePointer ref = this->GetAFDB()->template GetImage <MaskImageType>(n+"_Ref");
+      relpos->SetReferenceImageForOverlapMeasure(ref);
+    }
     relpos->Update();
     input = relpos->GetOutput();
+
     SetCurrentStepNumber(relpos->GetCurrentStepNumber());
   }
   return input;