X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=itk%2FclitkSliceBySliceRelativePositionFilter.h;h=90a1b2567e8cb4779bd8d9f21bfeeed15478b09e;hb=8053f213b244363b3c07a27008081dc88dd1f200;hp=bc8ae9725e5bd72342c24dcfca41a52fbae1f504;hpb=a89d8140714c44dd29d96f6482dd90c40ad175b4;p=clitk.git diff --git a/itk/clitkSliceBySliceRelativePositionFilter.h b/itk/clitkSliceBySliceRelativePositionFilter.h index bc8ae97..90a1b25 100644 --- a/itk/clitkSliceBySliceRelativePositionFilter.h +++ b/itk/clitkSliceBySliceRelativePositionFilter.h @@ -33,13 +33,12 @@ namespace clitk { template class ITK_EXPORT SliceBySliceRelativePositionFilter: - public clitk::FilterBase, - public itk::ImageToImageFilter + public AddRelativePositionConstraintToLabelImageFilter { public: /** Standard class typedefs. */ - typedef itk::ImageToImageFilter Superclass; + typedef AddRelativePositionConstraintToLabelImageFilter Superclass; typedef SliceBySliceRelativePositionFilter Self; typedef itk::SmartPointer Pointer; typedef itk::SmartPointer ConstPointer; @@ -54,6 +53,7 @@ namespace clitk { /** ImageDimension constants */ itkStaticConstMacro(ImageDimension, unsigned int, ImageType::ImageDimension); typedef itk::Image FloatImageType; + typedef itk::Image FloatSliceType; /** Some convenient typedefs. */ typedef typename ImageType::ConstPointer ImageConstPointer; @@ -69,50 +69,39 @@ namespace clitk { /** Input : initial image and object */ void SetInput(const ImageType * image); void SetInputObject(const ImageType * image); - + // Options + void PrintOptions(std::ostream & os = std::cout); itkGetConstMacro(Direction, int); itkSetMacro(Direction, int); - itkGetConstMacro(ObjectBackgroundValue, PixelType); - itkSetMacro(ObjectBackgroundValue, PixelType); - - itkSetMacro(OrientationTypeString, std::string); - itkGetConstMacro(OrientationTypeString, std::string); - - itkGetConstMacro(ResampleBeforeRelativePositionFilter, bool); - itkSetMacro(ResampleBeforeRelativePositionFilter, bool); - itkBooleanMacro(ResampleBeforeRelativePositionFilter); - - itkGetConstMacro(IntermediateSpacing, double); - itkSetMacro(IntermediateSpacing, double); - itkGetConstMacro(FuzzyThreshold, double); - itkSetMacro(FuzzyThreshold, double); - - itkGetConstMacro(UniqueConnectedComponentBySlice, bool); - itkSetMacro(UniqueConnectedComponentBySlice, bool); - itkBooleanMacro(UniqueConnectedComponentBySlice); - - itkGetConstMacro(AutoCropFlag, bool); - itkSetMacro(AutoCropFlag, bool); - itkBooleanMacro(AutoCropFlag); - - itkGetConstMacro(NotFlag, bool); - itkSetMacro(NotFlag, bool); - itkBooleanMacro(NotFlag); + itkGetConstMacro(UniqueConnectedComponentBySliceFlag, bool); + itkSetMacro(UniqueConnectedComponentBySliceFlag, bool); + itkBooleanMacro(UniqueConnectedComponentBySliceFlag); + + itkGetConstMacro(IgnoreEmptySliceObjectFlag, bool); + itkSetMacro(IgnoreEmptySliceObjectFlag, bool); + itkBooleanMacro(IgnoreEmptySliceObjectFlag); + + itkGetConstMacro(UseTheLargestObjectCCLFlag, bool); + itkSetMacro(UseTheLargestObjectCCLFlag, bool); + itkBooleanMacro(UseTheLargestObjectCCLFlag); + + itkGetConstMacro(ObjectCCLSelectionFlag, bool); + itkSetMacro(ObjectCCLSelectionFlag, bool); + itkBooleanMacro(ObjectCCLSelectionFlag); + itkGetConstMacro(ObjectCCLSelectionDimension, int); + itkSetMacro(ObjectCCLSelectionDimension, int); + itkGetConstMacro(ObjectCCLSelectionDirection, int); + itkSetMacro(ObjectCCLSelectionDirection, int); + itkGetConstMacro(ObjectCCLSelectionIgnoreSingleCCLFlag, bool); + itkSetMacro(ObjectCCLSelectionIgnoreSingleCCLFlag, bool); + itkBooleanMacro(ObjectCCLSelectionIgnoreSingleCCLFlag); protected: SliceBySliceRelativePositionFilter(); virtual ~SliceBySliceRelativePositionFilter() {} - int m_Direction; - PixelType m_ObjectBackgroundValue; - // OrientationTypeEnumeration m_OrientationType; - std::string m_OrientationTypeString; - double m_IntermediateSpacing; - double m_FuzzyThreshold; - bool m_ResampleBeforeRelativePositionFilter; - virtual void GenerateOutputInformation(); virtual void GenerateInputRequestedRegion(); virtual void GenerateData(); @@ -121,9 +110,14 @@ namespace clitk { ImagePointer object; ImagePointer m_working_input; ImagePointer m_working_object; - bool m_UniqueConnectedComponentBySlice; - bool m_NotFlag; - bool m_AutoCropFlag; + bool m_UniqueConnectedComponentBySliceFlag; + int m_Direction; + bool m_IgnoreEmptySliceObjectFlag; + bool m_UseTheLargestObjectCCLFlag; + bool m_ObjectCCLSelectionFlag; + int m_ObjectCCLSelectionDimension; + int m_ObjectCCLSelectionDirection; + bool m_ObjectCCLSelectionIgnoreSingleCCLFlag; private: SliceBySliceRelativePositionFilter(const Self&); //purposely not implemented