]> Creatis software - clitk.git/blobdiff - segmentation/clitkExtractLungFilter.h
Merge branch 'master' of git.creatis.insa-lyon.fr:clitk
[clitk.git] / segmentation / clitkExtractLungFilter.h
index 23fbbc7a8fd427a8f5f749aaee81c69eae275064..6f31cee1626a334d53f8042684bf8bbdb62a96d6 100644 (file)
@@ -142,6 +142,9 @@ namespace clitk {
 
     void SetLabelizeParameters1(LabelParamType * a) { m_LabelizeParameters1 = a; }
     itkGetConstMacro(LabelizeParameters1, LabelParamType*);
+    
+    itkSetMacro(TracheaSeedAlgorithm, int);
+    itkGetConstMacro(TracheaSeedAlgorithm, int);
 
     // Step 2 options FindTrachea
     itkSetMacro(UpperThresholdForTrachea, InputImagePixelType);
@@ -153,6 +156,14 @@ namespace clitk {
     itkSetMacro(ThresholdStepSizeForTrachea, InputImagePixelType);
     itkGetConstMacro(ThresholdStepSizeForTrachea, InputImagePixelType);
 
+    // options FindTrachea2
+    itkSetMacro(NumSlices, int);
+    itkGetConstMacro(NumSlices, int);
+    itkSetMacro(MaxElongation, double);
+    itkGetConstMacro(MaxElongation, double);
+    itkSetMacro(SeedPreProcessingThreshold, int);
+    itkGetConstMacro(SeedPreProcessingThreshold, int);
+
     void AddSeed(InternalIndexType s);
     std::vector<InternalIndexType> & GetSeeds() { return  m_Seeds; }
 
@@ -164,6 +175,10 @@ namespace clitk {
     itkGetConstMacro(VerboseRegionGrowingFlag, bool);
     itkBooleanMacro(VerboseRegionGrowingFlag);    
 
+    itkSetMacro(RemoveSmallLabelBeforeSeparationFlag, bool);
+    itkGetConstMacro(RemoveSmallLabelBeforeSeparationFlag, bool);
+    itkBooleanMacro(RemoveSmallLabelBeforeSeparationFlag);    
+
     // Step 3 options ExtractLung
     itkSetMacro(NumberOfHistogramBins, int);
     itkGetConstMacro(NumberOfHistogramBins, int);
@@ -200,7 +215,7 @@ namespace clitk {
     itkSetMacro(AutoCrop, bool);
     itkGetConstMacro(AutoCrop, bool);
     itkBooleanMacro(AutoCrop);
-
+    
   protected:
     ExtractLungFilter();
     virtual ~ExtractLungFilter() {}
@@ -223,6 +238,7 @@ namespace clitk {
     MaskImagePixelType m_ForegroundValue;
     int m_MinimalComponentSize;
     bool m_AutoCrop;
+    bool m_RemoveSmallLabelBeforeSeparationFlag;
 
     // Step 1
     InputImagePixelType m_UpperThreshold;
@@ -231,6 +247,7 @@ namespace clitk {
     LabelParamType* m_LabelizeParameters1;
 
     // Step 2
+    int m_TracheaSeedAlgorithm;
     InputImagePixelType m_UpperThresholdForTrachea;
     InputImagePixelType m_ThresholdStepSizeForTrachea;
     double m_MultiplierForTrachea;
@@ -238,6 +255,9 @@ namespace clitk {
     int m_NumberOfSlicesToSkipBeforeSearchingSeed;
     bool m_TracheaVolumeMustBeCheckedFlag;
     bool m_VerboseRegionGrowingFlag;
+    int m_NumSlices;
+    double m_MaxElongation;
+    int m_SeedPreProcessingThreshold;
 
     // Step 3
     int m_NumberOfHistogramBins;
@@ -264,6 +284,7 @@ namespace clitk {
     
     // Functions for trachea extraction
     bool SearchForTracheaSeed(int skip);
+    bool SearchForTracheaSeed2(int numberOfSlices);
     void SearchForTrachea();
     void TracheaRegionGrowing();
     double ComputeTracheaVolume();