X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=segmentation%2FclitkExtractLungFilter.h;h=6c50b1c2d96c85e3c9b8485d970d9ad6e0a261b3;hb=HEAD;hp=76e2640f7d43d73b5586457678a9fe4c9e7c3388;hpb=d30d301ddbebb5f290f8d9c0104dc6448ea531e1;p=clitk.git diff --git a/segmentation/clitkExtractLungFilter.h b/segmentation/clitkExtractLungFilter.h index 76e2640..6c50b1c 100644 --- a/segmentation/clitkExtractLungFilter.h +++ b/segmentation/clitkExtractLungFilter.h @@ -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 CLITKEXTRACTLUNGSFILTER_H #define CLITKEXTRACTLUNGSFILTER_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,7 +156,16 @@ namespace clitk { itkSetMacro(ThresholdStepSizeForTrachea, InputImagePixelType); itkGetConstMacro(ThresholdStepSizeForTrachea, InputImagePixelType); - void AddSeed(InternalIndexType s); + // options FindTrachea2 + itkSetMacro(NumSlices, int); + itkGetConstMacro(NumSlices, int); + itkSetMacro(MaxElongation, double); + itkGetConstMacro(MaxElongation, double); + itkSetMacro(SeedPreProcessingThreshold, int); + itkGetConstMacro(SeedPreProcessingThreshold, int); + + void AddSeedInPixels(InternalIndexType s); + void AddSeed(InputImagePointType s); std::vector & GetSeeds() { return m_Seeds; } itkSetMacro(TracheaVolumeMustBeCheckedFlag, bool); @@ -164,6 +176,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 +207,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 +238,8 @@ namespace clitk { MaskImagePixelType m_BackgroundValue; MaskImagePixelType m_ForegroundValue; int m_MinimalComponentSize; + bool m_AutoCrop; + bool m_RemoveSmallLabelBeforeSeparationFlag; // Step 1 InputImagePixelType m_UpperThreshold; @@ -220,13 +248,18 @@ namespace clitk { LabelParamType* m_LabelizeParameters1; // Step 2 + int m_TracheaSeedAlgorithm; InputImagePixelType m_UpperThresholdForTrachea; InputImagePixelType m_ThresholdStepSizeForTrachea; double m_MultiplierForTrachea; std::vector m_Seeds; + std::vector m_SeedsInMM; 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 +277,8 @@ namespace clitk { bool m_FillHolesFlag; InputImageSizeType m_FillHolesDirections; + bool m_SeparateLungsFlag; + // Main functions virtual void GenerateOutputInformation(); virtual void GenerateInputRequestedRegion(); @@ -251,6 +286,7 @@ namespace clitk { // Functions for trachea extraction bool SearchForTracheaSeed(int skip); + bool SearchForTracheaSeed2(int numberOfSlices); void SearchForTrachea(); void TracheaRegionGrowing(); double ComputeTracheaVolume();