]> Creatis software - clitk.git/blobdiff - segmentation/clitkExtractBonesGenericFilter.txx
Merge branch 'master' of tux.creatis.insa-lyon.fr:clitk
[clitk.git] / segmentation / clitkExtractBonesGenericFilter.txx
index 285842e5c0d5672aac8f981a9f84dc0aa1005d0f..c2efe5222ef30612463251afc27f16a231594996 100644 (file)
@@ -3,7 +3,7 @@
 
   Authors belong to: 
   - University of LYON              http://www.universite-lyon.fr/
-  - Léon Bérard cancer center       http://oncora1.lyon.fnclcc.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
@@ -14,7 +14,7 @@
 
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
-  ======================================================================-====*/
+  ===========================================================================**/
 
 #ifndef CLITKEXTRACTBONESSGENERICFILTER_TXX
 #define CLITKEXTRACTBONESSGENERICFILTER_TXX
@@ -50,10 +50,54 @@ template<class ArgsInfoType>
 void clitk::ExtractBonesGenericFilter<ArgsInfoType>::SetArgsInfo(const ArgsInfoType & a) 
 {
   mArgsInfo=a;
-  SetIOVerbose(mArgsInfo.verbose_flag);
+  this->SetIOVerbose(mArgsInfo.verbose_flag);
   if (mArgsInfo.imagetypes_flag) this->PrintAvailableImageTypes();
-  if (mArgsInfo.input_given)   AddInputFilename(mArgsInfo.input_arg);
-  if (mArgsInfo.output_given)  AddOutputFilename(mArgsInfo.output_arg);
+  if (mArgsInfo.input_given)   this->AddInputFilename(mArgsInfo.input_arg);
+  if (mArgsInfo.output_given)  this->AddOutputFilename(mArgsInfo.output_arg);
+}
+//--------------------------------------------------------------------
+
+
+//--------------------------------------------------------------------
+template<class ArgsInfoType>
+template<class FilterType>
+void clitk::ExtractBonesGenericFilter<ArgsInfoType>::
+SetOptionsFromArgsInfoToFilter(FilterType * f) 
+{
+  f->SetVerboseOptionFlag(mArgsInfo.verboseOption_flag);
+  f->SetVerboseStepFlag(mArgsInfo.verboseStep_flag);
+  f->SetWriteStepFlag(mArgsInfo.writeStep_flag);
+  f->SetVerboseWarningFlag(!mArgsInfo.verboseWarningOff_flag);
+  f->SetVerboseMemoryFlag(mArgsInfo.verboseMemory_flag);
+
+  if (mArgsInfo.afdb_given)
+    f->SetAFDBFilename(mArgsInfo.afdb_arg);
+
+  f->SetOutputBonesFilename(mArgsInfo.output_arg);
+
+  f->SetInitialSmoothing(mArgsInfo.smooth_flag);
+  f->SetSmoothingConductanceParameter(mArgsInfo.cond_arg);
+  f->SetSmoothingNumberOfIterations(mArgsInfo.iter_arg);
+  f->SetSmoothingTimeStep(mArgsInfo.time_arg);
+  f->SetSmoothingUseImageSpacing(mArgsInfo.spacing_flag);
+
+  f->SetMinimalComponentSize(mArgsInfo.minSize_arg);
+  f->SetUpperThreshold1(mArgsInfo.upper1_arg);
+  f->SetLowerThreshold1(mArgsInfo.lower1_arg);
+  f->SetFullConnectivity(mArgsInfo.full_flag);
+
+  f->SetUpperThreshold2(mArgsInfo.upper2_arg);
+  f->SetLowerThreshold2(mArgsInfo.lower2_arg);
+
+  typename FilterType::InputImageSizeType s;
+  if (mArgsInfo.radius2_given) {
+    ConvertOptionMacro(mArgsInfo.radius2, s, 3, false);
+    f->SetRadius2(s);
+  }
+
+  f->SetSampleRate2(mArgsInfo.sampleRate2_arg);
+  f->SetAutoCrop(!mArgsInfo.noAutoCrop_flag);
+  f->SetFillHoles(!mArgsInfo.doNotFillHoles_flag);
 }
 //--------------------------------------------------------------------
 
@@ -76,8 +120,8 @@ void clitk::ExtractBonesGenericFilter<ArgsInfoType>::UpdateWithInputImageType()
   typename FilterType::Pointer filter = FilterType::New();
     
   // Set global Options 
-  filter->SetArgsInfo(mArgsInfo);
   filter->SetInput(input);
+  SetOptionsFromArgsInfoToFilter<FilterType>(filter);
 
   // Go !
   filter->Update();