#include "clitkFilterBase.h"
// itk
-#include "itkPasteImageFilter.h"
+#include <itkPasteImageFilter.h>
// itk ENST
#include "RelativePositionPropImageFilter.h"
*/
//--------------------------------------------------------------------
- template <class TImageType>
+ template <class ImageType>
class ITK_EXPORT AddRelativePositionConstraintToLabelImageFilter:
public clitk::FilterBase,
- public itk::ImageToImageFilter<TImageType, TImageType>
+ public itk::ImageToImageFilter<ImageType, ImageType>
{
public:
/** Standard class typedefs. */
- typedef itk::ImageToImageFilter<TImageType, TImageType> Superclass;
+ typedef itk::ImageToImageFilter<ImageType, ImageType> Superclass;
typedef AddRelativePositionConstraintToLabelImageFilter Self;
typedef itk::SmartPointer<Self> Pointer;
typedef itk::SmartPointer<const Self> ConstPointer;
FILTERBASE_INIT;
/** Some convenient typedefs. */
- typedef TImageType ImageType;
typedef typename ImageType::ConstPointer ImageConstPointer;
typedef typename ImageType::Pointer ImagePointer;
typedef typename ImageType::RegionType RegionType;
typedef typename ImageType::PixelType PixelType;
typedef typename ImageType::SpacingType SpacingType;
typedef typename ImageType::SizeType SizeType;
+ typedef typename ImageType::IndexType IndexType;
+ typedef typename ImageType::PointType PointType;
/** ImageDimension constants */
- itkStaticConstMacro(ImageDimension, unsigned int, TImageType::ImageDimension);
+ itkStaticConstMacro(ImageDimension, unsigned int, ImageType::ImageDimension);
typedef itk::Image<float, ImageDimension> FloatImageType;
/** Orientation types */
- typedef enum { RightTo = 0, LeftTo = 1,
+ typedef enum { AtRightTo = 0, AtLeftTo = 1,
AntTo = 2, PostTo = 3,
InfTo = 4, SupTo = 5, Angle = 6
} OrientationTypeEnumeration;
void SetInputObject(const ImageType * image);
// Options
- void SetOrientationType(OrientationTypeEnumeration orientation);
- itkGetConstMacro(OrientationType, OrientationTypeEnumeration);
- void SetAngle1(double a);
- void SetAngle2(double a);
- itkGetConstMacro(Angle1, double);
- itkGetConstMacro(Angle2, double);
- itkGetConstMacro(ResampleBeforeRelativePositionFilter, bool);
- itkSetMacro(ResampleBeforeRelativePositionFilter, bool);
- itkBooleanMacro(ResampleBeforeRelativePositionFilter);
+ void AddOrientationType(OrientationTypeEnumeration orientation);
+ void AddOrientationTypeString(std::string s);
+ void ClearOrientationType();
+ void AddAngles(double a, double b);
+ int GetNumberOfAngles();
+ std::string GetOrientationTypeString(int i) { return m_OrientationTypeString[i]; }
+ std::vector<std::string> & GetOrientationTypeString() { return m_OrientationTypeString; }
+
+ itkGetConstMacro(IntermediateSpacingFlag, bool);
+ itkSetMacro(IntermediateSpacingFlag, bool);
+ itkBooleanMacro(IntermediateSpacingFlag);
+
itkGetConstMacro(IntermediateSpacing, double);
itkSetMacro(IntermediateSpacing, double);
+
itkGetConstMacro(FuzzyThreshold, double);
itkSetMacro(FuzzyThreshold, double);
+
itkGetConstMacro(BackgroundValue, PixelType);
itkSetMacro(BackgroundValue, PixelType);
+
itkGetConstMacro(ObjectBackgroundValue, PixelType);
itkSetMacro(ObjectBackgroundValue, PixelType);
+ itkGetConstMacro(AutoCropFlag, bool);
+ itkSetMacro(AutoCropFlag, bool);
+ itkBooleanMacro(AutoCropFlag);
+
+ itkGetConstMacro(InverseOrientationFlag, bool);
+ itkSetMacro(InverseOrientationFlag, bool);
+ itkBooleanMacro(InverseOrientationFlag);
+
+ itkGetConstMacro(RemoveObjectFlag, bool);
+ itkSetMacro(RemoveObjectFlag, bool);
+ itkBooleanMacro(RemoveObjectFlag);
+
+ itkGetConstMacro(CombineWithOrFlag, bool);
+ itkSetMacro(CombineWithOrFlag, bool);
+ itkBooleanMacro(CombineWithOrFlag);
+
protected:
AddRelativePositionConstraintToLabelImageFilter();
virtual ~AddRelativePositionConstraintToLabelImageFilter() {}
- OrientationTypeEnumeration m_OrientationType;
+ std::vector<OrientationTypeEnumeration> m_OrientationType;
+ std::vector<std::string> m_OrientationTypeString;
double m_IntermediateSpacing;
double m_FuzzyThreshold;
PixelType m_BackgroundValue;
PixelType m_ObjectBackgroundValue;
- double m_Angle1;
- double m_Angle2;
- bool m_ResampleBeforeRelativePositionFilter;
+ std::vector<double> m_Angle1;
+ std::vector<double> m_Angle2;
+ bool m_IntermediateSpacingFlag;
+ bool m_AutoCropFlag;
+ bool m_InverseOrientationFlag;
+ bool m_RemoveObjectFlag;
+ bool m_CombineWithOrFlag;
virtual void GenerateOutputInformation();
virtual void GenerateInputRequestedRegion();
virtual void GenerateData();
- typedef itk::PasteImageFilter<ImageType,ImageType> PadFilterType;
+ typedef itk::PasteImageFilter<ImageType,ImageType> PasteFilterType;
typename ImageType::Pointer working_image;
typename ImageType::Pointer object_resampled;
typename FloatImageType::Pointer relPos;