X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=segmentation%2FclitkExtractMediastinalVesselsFilter.h;h=0f3df6cbf09c41bb942b5d87c622fd2ea90d507a;hb=685bb891af7838fa8e52939fdc5208e05e1ca6f1;hp=665f79cc2ffd58dac98f0b4e3396c144ddc4c748;hpb=08d1fd56ac1d08bd228d9e557f5472a395e9b708;p=clitk.git diff --git a/segmentation/clitkExtractMediastinalVesselsFilter.h b/segmentation/clitkExtractMediastinalVesselsFilter.h index 665f79c..0f3df6c 100644 --- a/segmentation/clitkExtractMediastinalVesselsFilter.h +++ b/segmentation/clitkExtractMediastinalVesselsFilter.h @@ -88,11 +88,49 @@ namespace clitk { itkGetConstMacro(TemporaryForegroundValue, MaskImagePixelType); itkSetMacro(TemporaryForegroundValue, MaskImagePixelType); - itkGetConstMacro(OutputFolder, std::string); - itkSetMacro(OutputFolder, std::string); + itkGetConstMacro(ThresholdHigh, ImagePixelType); + itkSetMacro(ThresholdHigh, ImagePixelType); - itkGetConstMacro(Threshold, ImagePixelType); - itkSetMacro(Threshold, ImagePixelType); + itkGetConstMacro(ThresholdLow, ImagePixelType); + itkSetMacro(ThresholdLow, ImagePixelType); + + itkGetConstMacro(ErosionRadius, int); + itkSetMacro(ErosionRadius, int); + + itkGetConstMacro(DilatationRadius, int); + itkSetMacro(DilatationRadius, int); + + itkGetConstMacro(MaxDistancePostToCarina, double); + itkSetMacro(MaxDistancePostToCarina, double); + itkGetConstMacro(MaxDistanceAntToCarina, double); + itkSetMacro(MaxDistanceAntToCarina, double); + itkGetConstMacro(MaxDistanceLeftToCarina, double); + itkSetMacro(MaxDistanceLeftToCarina, double); + itkGetConstMacro(MaxDistanceRightToCarina, double); + itkSetMacro(MaxDistanceRightToCarina, double); + + itkSetMacro(DebugFlag, bool); + itkGetConstMacro(DebugFlag, bool); + itkBooleanMacro(DebugFlag); + + itkSetMacro(VerboseTrackingFlag, bool); + itkGetConstMacro(VerboseTrackingFlag, bool); + itkBooleanMacro(VerboseTrackingFlag); + + itkSetMacro(SoughtVesselSeedName, std::string); + itkGetConstMacro(SoughtVesselSeedName, std::string); + + itkSetMacro(SoughtVesselName, std::string); + itkGetConstMacro(SoughtVesselName, std::string); + + itkSetMacro(OutputFilename, std::string); + itkGetConstMacro(OutputFilename, std::string); + + itkSetMacro(MaxNumberOfFoundBifurcation, int); + itkGetConstMacro(MaxNumberOfFoundBifurcation, int); + + itkSetMacro(FinalOpeningRadius, int); + itkGetConstMacro(FinalOpeningRadius, int); protected: ExtractMediastinalVesselsFilter(); @@ -102,7 +140,8 @@ namespace clitk { virtual void GenerateInputRequestedRegion(); virtual void GenerateData(); - std::string m_OutputFolder; + bool m_DebugFlag; + bool m_VerboseTrackingFlag; ImagePointer m_Input; MaskImagePointer m_Working_Support; MaskImagePointer m_Mediastinum; @@ -110,18 +149,40 @@ namespace clitk { MaskImagePixelType m_BackgroundValue; MaskImagePixelType m_ForegroundValue; MaskImagePixelType m_TemporaryForegroundValue; - ImagePixelType m_Threshold; + ImagePixelType m_ThresholdHigh; + ImagePixelType m_ThresholdLow; + int m_ErosionRadius; + int m_DilatationRadius; + double m_MaxDistancePostToCarina; + double m_MaxDistanceAntToCarina; + double m_MaxDistanceLeftToCarina; + double m_MaxDistanceRightToCarina; + int m_MaxNumberOfFoundBifurcation; + int m_FinalOpeningRadius; std::vector m_slice_recon; + std::vector m_slice_recon2; + + // Resulting structures + MaskImageType::Pointer m_SoughtVessel; + std::string m_SoughtVesselSeedName; + std::string m_SoughtVesselName; + std::string m_OutputFilename; - void CropSupInf(); - //void SearchBrachioCephalicArtery(int & BCA_first_slice, LabelType & BCA_first_label); + void CropInputImage(); void TrackBifurcationFromPoint(MaskImagePointer & recon, std::vector & slices_recon, - MaskImagePointType BCA_p, + MaskImagePointType point3D, + MaskImagePointType pointMaxSlice, LabelType newLabel, std::vector & bif); + void TrackVesselsFromPoint(MaskImagePointer & recon, + std::vector & slices_recon, + MaskImagePointType point3D, + MaskImagePointType pointMaxSlice, + LabelType newLabel); + private: ExtractMediastinalVesselsFilter(const Self&); //purposely not implemented void operator=(const Self&); //purposely not implemented