]> Creatis software - clitk.git/blobdiff - segmentation/clitkExtractBonesFilter.h
Merge branch 'master' of tux.creatis.insa-lyon.fr:clitk
[clitk.git] / segmentation / clitkExtractBonesFilter.h
index e803e5a64fb6ce47f51613bd5d661fcf1c74dc41..e630f1a5fc4bf738b5d69d667859405e038aadb0 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 CLITKEXTRACTBONESSFILTER_H
 #define CLITKEXTRACTBONESSFILTER_H
@@ -33,7 +33,8 @@ namespace clitk {
   
   //--------------------------------------------------------------------
   /*
-    Extract bony anatomy through thresholding and connected component labelling.
+    Extract bony anatomy through thresholding and connected component
+    labelling.
   */
   //--------------------------------------------------------------------
   
@@ -86,82 +87,68 @@ namespace clitk {
     /** Connect inputs */
     void SetInput(const InputImageType * image);
  
-    // Set all options at a time
-    template<class ArgsInfoType>
-      void SetArgsInfo(ArgsInfoType arg);
-
     // Background / Foreground
     itkGetConstMacro(BackgroundValue, MaskImagePixelType);
     itkGetConstMacro(ForegroundValue, MaskImagePixelType);
 
     itkSetMacro(MinimalComponentSize, int);
     itkGetConstMacro(MinimalComponentSize, int);
-    GGO_DefineOption(minSize, SetMinimalComponentSize, int);
     
     // Output filename  (for AFBD)
     itkSetMacro(OutputBonesFilename, std::string);
     itkGetMacro(OutputBonesFilename, std::string);
-    GGO_DefineOption(output, SetOutputBonesFilename, std::string);
 
     // Step 0
     itkBooleanMacro(InitialSmoothing);
     itkSetMacro(InitialSmoothing, bool);
     itkGetMacro(InitialSmoothing, bool);
-    GGO_DefineOption_Flag(smooth, SetInitialSmoothing);
 
     itkSetMacro(SmoothingConductanceParameter, double);
     itkGetConstMacro(SmoothingConductanceParameter, double);
-    GGO_DefineOption(cond, SetSmoothingConductanceParameter, double);
     
     itkSetMacro(SmoothingNumberOfIterations, int);
     itkGetConstMacro(SmoothingNumberOfIterations, int);
-    GGO_DefineOption(iter, SetSmoothingNumberOfIterations, int);
 
     itkSetMacro(SmoothingTimeStep, double);
     itkGetConstMacro(SmoothingTimeStep, double);
-    GGO_DefineOption(time, SetSmoothingTimeStep, double);
 
     itkSetMacro(SmoothingUseImageSpacing, bool);
     itkGetConstMacro(SmoothingUseImageSpacing, bool);
     itkBooleanMacro(SmoothingUseImageSpacing);
-    GGO_DefineOption_Flag(spacing, SetSmoothingUseImageSpacing);
 
     // Step 1 
     itkSetMacro(UpperThreshold1, InputImagePixelType);
     itkGetMacro(UpperThreshold1, InputImagePixelType);
-    GGO_DefineOption(upper1, SetUpperThreshold1, InputImagePixelType);
 
     itkSetMacro(LowerThreshold1, InputImagePixelType);
     itkGetMacro(LowerThreshold1, InputImagePixelType);
-    GGO_DefineOption(lower1, SetLowerThreshold1, InputImagePixelType);
 
     itkSetMacro(FullConnectivity, bool);
     itkGetConstMacro(FullConnectivity, bool);
     itkBooleanMacro(FullConnectivity);
-    GGO_DefineOption_Flag(full, SetFullConnectivity);
 
     // Step 2 
     itkSetMacro(UpperThreshold2, InputImagePixelType);
     itkGetMacro(UpperThreshold2, InputImagePixelType);
-    GGO_DefineOption(upper2, SetUpperThreshold2, InputImagePixelType);
 
     itkSetMacro(LowerThreshold2, InputImagePixelType);
     itkGetMacro(LowerThreshold2, InputImagePixelType);
-    GGO_DefineOption(lower2, SetLowerThreshold2, InputImagePixelType);
 
     itkSetMacro(Radius2, InputImageSizeType);
     itkGetConstMacro(Radius2, InputImageSizeType);
-    GGO_DefineOption_Vector(radius2, SetRadius2, InputImageSizeType, ImageDimension, true);
 
     itkSetMacro(SampleRate2, int);
     itkGetConstMacro(SampleRate2, int);
-    GGO_DefineOption(sampleRate2, SetSampleRate2, int);
 
-    // Final Step
+    // Step fill holes
+    itkSetMacro(FillHoles, bool);
+    itkGetConstMacro(FillHoles, bool);
+    itkBooleanMacro(FillHoles);
+
+    // Step Auto Crop
     itkSetMacro(AutoCrop, bool);
     itkGetConstMacro(AutoCrop, bool);
     itkBooleanMacro(AutoCrop);
-    GGO_DefineOption_Flag(noAutoCrop, SetAutoCrop);
 
   protected:
     ExtractBonesFilter();
@@ -193,6 +180,10 @@ namespace clitk {
     InputImageSizeType m_Radius2;
     int m_SampleRate2;
     
+    // Step 
+    bool m_FillHoles;    
+    InputImageSizeType m_FillHolesDirections;
+
     virtual void GenerateOutputInformation();
     virtual void GenerateData();