X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=segmentation%2FclitkExtractLungFilter.h;h=6f31cee1626a334d53f8042684bf8bbdb62a96d6;hb=dd97e70fb269511ab78c194b956893a8f2504600;hp=50d553ae41ce9c130d9ba7acfde941354f3d1fd6;hpb=765020625fbc092d283e221e36c83e60a1844cb7;p=clitk.git diff --git a/segmentation/clitkExtractLungFilter.h b/segmentation/clitkExtractLungFilter.h index 50d553a..6f31cee 100644 --- a/segmentation/clitkExtractLungFilter.h +++ b/segmentation/clitkExtractLungFilter.h @@ -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 & 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); @@ -191,6 +206,16 @@ namespace clitk { itkGetConstMacro(FillHolesFlag, bool); itkBooleanMacro(FillHolesFlag); + // Separate lungs + itkSetMacro(SeparateLungsFlag, bool); + itkGetConstMacro(SeparateLungsFlag, bool); + itkBooleanMacro(SeparateLungsFlag); + + // Step Auto Crop + itkSetMacro(AutoCrop, bool); + itkGetConstMacro(AutoCrop, bool); + itkBooleanMacro(AutoCrop); + protected: ExtractLungFilter(); virtual ~ExtractLungFilter() {} @@ -212,6 +237,8 @@ namespace clitk { MaskImagePixelType m_BackgroundValue; MaskImagePixelType m_ForegroundValue; int m_MinimalComponentSize; + bool m_AutoCrop; + bool m_RemoveSmallLabelBeforeSeparationFlag; // Step 1 InputImagePixelType m_UpperThreshold; @@ -220,6 +247,7 @@ namespace clitk { LabelParamType* m_LabelizeParameters1; // Step 2 + int m_TracheaSeedAlgorithm; InputImagePixelType m_UpperThresholdForTrachea; InputImagePixelType m_ThresholdStepSizeForTrachea; double m_MultiplierForTrachea; @@ -227,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; @@ -244,6 +275,8 @@ namespace clitk { bool m_FillHolesFlag; InputImageSizeType m_FillHolesDirections; + bool m_SeparateLungsFlag; + // Main functions virtual void GenerateOutputInformation(); virtual void GenerateInputRequestedRegion(); @@ -251,6 +284,7 @@ namespace clitk { // Functions for trachea extraction bool SearchForTracheaSeed(int skip); + bool SearchForTracheaSeed2(int numberOfSlices); void SearchForTrachea(); void TracheaRegionGrowing(); double ComputeTracheaVolume();