template <class ImageType>
class ITK_EXPORT SliceBySliceRelativePositionFilter:
- public clitk::FilterBase,
- public itk::ImageToImageFilter<ImageType, ImageType>
+ public AddRelativePositionConstraintToLabelImageFilter<ImageType>
{
public:
/** Standard class typedefs. */
- typedef itk::ImageToImageFilter<ImageType, ImageType> Superclass;
+ typedef AddRelativePositionConstraintToLabelImageFilter<ImageType> Superclass;
typedef SliceBySliceRelativePositionFilter Self;
typedef itk::SmartPointer<Self> Pointer;
typedef itk::SmartPointer<const Self> ConstPointer;
/** Input : initial image and object */
void SetInput(const ImageType * image);
void SetInputObject(const ImageType * image);
-
+
// Options
+ void PrintOptions();
itkGetConstMacro(Direction, int);
itkSetMacro(Direction, int);
- itkGetConstMacro(ObjectBackgroundValue, PixelType);
- itkSetMacro(ObjectBackgroundValue, PixelType);
-
- itkSetMacro(OrientationType, OrientationTypeEnumeration);
- itkGetConstMacro(OrientationType, OrientationTypeEnumeration);
- 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(IgnoreEmptySliceObjectFlag, bool);
+ itkSetMacro(IgnoreEmptySliceObjectFlag, bool);
+ itkBooleanMacro(IgnoreEmptySliceObjectFlag);
+
+ itkGetConstMacro(UseASingleObjectConnectedComponentBySliceFlag, bool);
+ itkSetMacro(UseASingleObjectConnectedComponentBySliceFlag, bool);
+ itkBooleanMacro(UseASingleObjectConnectedComponentBySliceFlag);
+
+ itkGetConstMacro(CCLSelectionFlag, bool);
+ itkSetMacro(CCLSelectionFlag, bool);
+ itkBooleanMacro(CCLSelectionFlag);
+ itkGetConstMacro(CCLSelectionDimension, int);
+ itkSetMacro(CCLSelectionDimension, int);
+ itkGetConstMacro(CCLSelectionDirection, int);
+ itkSetMacro(CCLSelectionDirection, int);
+ itkGetConstMacro(CCLSelectionIgnoreSingleCCLFlag, bool);
+ itkSetMacro(CCLSelectionIgnoreSingleCCLFlag, bool);
+ itkBooleanMacro(CCLSelectionIgnoreSingleCCLFlag);
protected:
SliceBySliceRelativePositionFilter();
virtual ~SliceBySliceRelativePositionFilter() {}
- int m_Direction;
- PixelType m_ObjectBackgroundValue;
- OrientationTypeEnumeration m_OrientationType;
- double m_IntermediateSpacing;
- double m_FuzzyThreshold;
- bool m_ResampleBeforeRelativePositionFilter;
-
virtual void GenerateOutputInformation();
virtual void GenerateInputRequestedRegion();
virtual void GenerateData();
ImagePointer object;
ImagePointer m_working_input;
ImagePointer m_working_object;
+ bool m_UniqueConnectedComponentBySlice;
+ int m_Direction;
+ bool m_IgnoreEmptySliceObjectFlag;
+ bool m_UseASingleObjectConnectedComponentBySliceFlag;
+ bool m_CCLSelectionFlag;
+ int m_CCLSelectionDimension;
+ int m_CCLSelectionDirection;
+ bool m_CCLSelectionIgnoreSingleCCLFlag;
private:
SliceBySliceRelativePositionFilter(const Self&); //purposely not implemented