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();
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;
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<MaskSlicePointer> m_slice_recon;
+ std::vector<MaskSlicePointer> 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<MaskSlicePointer> & slices_recon,
- MaskImagePointType BCA_p,
+ MaskImagePointType point3D,
+ MaskImagePointType pointMaxSlice,
LabelType newLabel,
std::vector<MaskImagePointType> & bif);
+ void TrackVesselsFromPoint(MaskImagePointer & recon,
+ std::vector<MaskSlicePointer> & slices_recon,
+ MaskImagePointType point3D,
+ MaskImagePointType pointMaxSlice,
+ LabelType newLabel);
+
private:
ExtractMediastinalVesselsFilter(const Self&); //purposely not implemented
void operator=(const Self&); //purposely not implemented