X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=segmentation%2FclitkExtractLymphStationsFilter.h;h=4c7c669d964524b24e7cb7ec6c113340aaada037;hb=3c86758765bc9bcba20d439424bcf97091b5af6f;hp=dd99c5fd4f8eced90f38eef544e1929417ddd802;hpb=a27c5cbbf1db44ddc5f519710cddcc1001c15f35;p=clitk.git diff --git a/segmentation/clitkExtractLymphStationsFilter.h b/segmentation/clitkExtractLymphStationsFilter.h index dd99c5f..4c7c669 100644 --- a/segmentation/clitkExtractLymphStationsFilter.h +++ b/segmentation/clitkExtractLymphStationsFilter.h @@ -109,6 +109,11 @@ namespace clitk { void AddComputeStation(std::string station) ; void SetFuzzyThreshold(std::string station, std::string tag, double value); double GetFuzzyThreshold(std::string station, std::string tag); + void SetThreshold(std::string station, std::string tag, double value); + double GetThreshold(std::string station, std::string tag); + itkGetConstMacro(ComputeStationsSupportsFlag, bool); + itkSetMacro(ComputeStationsSupportsFlag, bool); + itkBooleanMacro(ComputeStationsSupportsFlag); protected: ExtractLymphStationsFilter(); @@ -131,21 +136,45 @@ namespace clitk { void Remove_Structures(std::string station, std::string s); // Functions common to several stations - void FindLineForS7S8Separation(MaskImagePointType & A, MaskImagePointType & B); - double FindCarinaSlicePosition(); + double FindCarina(); + double FindApexOfTheChest(); + double FindSuperiorBorderOfAorticArch(); + double FindInferiorBorderOfAorticArch(); void FindLeftAndRightBronchi(); + void FindLineForS7S8Separation(MaskImagePointType & A, MaskImagePointType & B); + MaskImagePointer FindAntPostVessels(); + MaskImagePointer FindAntPostVessels2(); // Global parameters typedef std::map FuzzyThresholdByStructureType; std::map m_FuzzyThreshold; + typedef std::map ThresholdByStructureType; + std::map m_Threshold; // Station's supports void ExtractStationSupports(); + void Support_SupInf_S1RL(); + void Support_LeftRight_S1R_S1L(); + void Support_SupInf_S2R_S2L(); + void Support_LeftRight_S2R_S2L(); + void Support_SupInf_S4R_S4L(); + void Support_LeftRight_S4R_S4L(); + void Support_Post_S1S2S4(); + void Support_S3P(); + void Support_S3A(); + void Support_S5(); + void Support_S6(); + + MaskImagePointer LimitsWithTrachea(MaskImageType * input, + int extremaDirection, int lineDirection, + double offset, double maxSupPosition); + MaskImagePointer LimitsWithTrachea(MaskImageType * input, + int extremaDirection, int lineDirection, + double offset); // Station 8 // double m_DistanceMaxToAnteriorPartOfTheSpine; double m_DiaphragmInferiorLimit; - double m_CarinaZ; double m_OriginOfRightMiddleLobeBronchusZ; double m_InjectedThresholdForS8; MaskImagePointer m_Esophagus; @@ -164,13 +193,19 @@ namespace clitk { // Station 3P void ExtractStation_3P(); void ExtractStation_3P_SetDefaultValues(); - void ExtractStation_3P_SI_Limits(); + void ExtractStation_3P_LR_inf_Limits(); + void ExtractStation_3P_LR_sup_Limits_2(); void ExtractStation_3P_Remove_Structures(); - void ExtractStation_3P_Ant_Limits(); - void ExtractStation_3P_Post_Limits(); void ExtractStation_3P_LR_sup_Limits(); - void ExtractStation_3P_LR_sup_Limits_2(); - void ExtractStation_3P_LR_inf_Limits(); + + // Station 3A + void ExtractStation_3A(); + void ExtractStation_3A_SetDefaultValues(); + void ExtractStation_3A_AntPost_S5(); + void ExtractStation_3A_AntPost_S6(); + void ExtractStation_3A_AntPost_Superiorly(); + void ExtractStation_3A_Remove_Structures(); + void ExtractStation_3A_PostToBones(); // Station 2RL void ExtractStation_2RL(); @@ -184,13 +219,6 @@ namespace clitk { void ExtractStation_2RL_SeparateRL(); vtkSmartPointer Build3DMeshFrom2DContour(const std::vector & points); - // Station 3A - void ExtractStation_3A(); - void ExtractStation_3A_SetDefaultValues(); - void ExtractStation_3A_SI_Limits(); - void ExtractStation_3A_Ant_Limits(); - void ExtractStation_3A_Post_Limits(); - // Station 7 void ExtractStation_7(); void ExtractStation_7_SetDefaultValues(); @@ -202,6 +230,7 @@ namespace clitk { void ExtractStation_7_Posterior_Limits(); void ExtractStation_7_Remove_Structures(); bool m_S7_UseMostInferiorPartOnlyFlag; + bool m_ComputeStationsSupportsFlag; MaskImagePointer m_Working_Trachea; MaskImagePointer m_LeftBronchus; MaskImagePointer m_RightBronchus;