Authors belong to:
- University of LYON http://www.universite-lyon.fr/
- - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
+ - Léon Bérard cancer center http://www.centreleonberard.fr
- CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
This software is distributed WITHOUT ANY WARRANTY; without even
- BSD See included LICENSE.txt file
- CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
- ======================================================================-====*/
+ ===========================================================================**/
#ifndef CLITKADDRELATIVEPOSITIONCONSTRAINTTOLABELIMAGEFILTER_H
#define CLITKADDRELATIVEPOSITIONCONSTRAINTTOLABELIMAGEFILTER_H
// clitk
#include "clitkFilterBase.h"
+#include "clitkCropLikeImageFilter.h"
// itk
#include <itkPasteImageFilter.h>
void SetInputObject(const ImageType * image);
// Options
- void SetOrientationType(OrientationTypeEnumeration orientation);
- itkGetConstMacro(OrientationType, OrientationTypeEnumeration);
- void SetOrientationTypeString(std::string s);
- itkGetConstMacro(OrientationTypeString, std::string);
-
- 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 AddAnglesInRad(double a, double b);
+ void AddAnglesInDeg(double a, double b);
+ double GetAngle1InRad(int i) { return m_Angle1[i]; }
+ double GetAngle2InRad(int i) { return m_Angle2[i]; }
+ 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);
itkSetMacro(AutoCropFlag, bool);
itkBooleanMacro(AutoCropFlag);
- itkGetConstMacro(NotFlag, bool);
- itkSetMacro(NotFlag, bool);
- itkBooleanMacro(NotFlag);
+ itkGetConstMacro(InverseOrientationFlag, bool);
+ itkSetMacro(InverseOrientationFlag, bool);
+ itkBooleanMacro(InverseOrientationFlag);
+
+ itkGetConstMacro(RemoveObjectFlag, bool);
+ itkSetMacro(RemoveObjectFlag, bool);
+ itkBooleanMacro(RemoveObjectFlag);
+
+ itkGetConstMacro(CombineWithOrFlag, bool);
+ itkSetMacro(CombineWithOrFlag, bool);
+ itkBooleanMacro(CombineWithOrFlag);
+
+ itkGetConstMacro(FuzzyMapOnlyFlag, bool);
+ itkSetMacro(FuzzyMapOnlyFlag, bool);
+ itkBooleanMacro(FuzzyMapOnlyFlag);
+
+ typename FloatImageType::Pointer GetFuzzyMap() { return m_FuzzyMap; }
+
+ // I dont want to verify inputs information
+ virtual void VerifyInputInformation() { }
+
+ // For debug
+ void PrintOptions();
protected:
AddRelativePositionConstraintToLabelImageFilter();
virtual ~AddRelativePositionConstraintToLabelImageFilter() {}
- OrientationTypeEnumeration m_OrientationType;
- std::string m_OrientationTypeString;
+ 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_NotFlag;
+ bool m_InverseOrientationFlag;
+ bool m_RemoveObjectFlag;
+ bool m_CombineWithOrFlag;
+ bool m_FuzzyMapOnlyFlag;
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;
+ typename FloatImageType::Pointer m_FuzzyMap;
ImagePointer input;
ImagePointer object;