35 #ifndef AIMS_MORPHOLOGY_OPERATORMORPHO_H 36 #define AIMS_MORPHOLOGY_OPERATORMORPHO_H 43 template <
typename T>
class AimsData;
46 template <
typename T>
class Volume;
47 template <
typename T>
class VolumeRef;
71 AimsData<T> &initvol,
float size, Connectivity::Type connectivity );
87 const AimsData<T> &vol,
float size, Connectivity::Type type );
92 const AimsData<T> &initvol,
float size, Connectivity::Type connectivity );
101 template <
typename T>
109 template <
typename T>
116 float mult_fact=50 );
120 template <
typename T>
122 const AimsData<T> &vol,
float size, Connectivity::Type type);
130 template <
typename T>
135 template <
typename T>
142 float mult_fact=50 );
145 template <
typename T>
147 const AimsData<T> &vol,
float size, Connectivity::Type type );
155 template <
typename T>
160 template <
typename T>
167 float mult_fact=50 );
171 template <
typename T>
173 const AimsData<T> &vol,
float size, Connectivity::Type type );
180 template <
typename T>
207 int neededBorderWidth()
const;
211 std::vector<Point3d> doStructElement(
float radius,
232 std::vector<Point3d> list;
234 float _chamfer_factor;
bool isChamferBinaryMorphoEnabled() const
when enabled, on binary images, the chamfer-based morphomath is used instead of the grey-level one...
AIMSALGO_API AimsData< T > AimsMorphoChamferDilation(const AimsData< T > &vol, float size, int xmask=3, int ymask=3, int zmask=3, float mult_fact=50)
AIMSALGO_API AimsData< T > AimsMorphoConnectivityChamferErosion(const AimsData< T > &vol, float size, Connectivity::Type type)
float chamferFactor() const
AIMSALGO_API AimsData< T > AimsMorphoChamferClosing(const AimsData< T > &vol, float size, int xmask=3, int ymask=3, int zmask=3, float mult_fact=50)
AIMSALGO_API AimsData< T > AimsMorphoClosing(const AimsData< T > &vol, float size, AimsMorphoMode mode=AIMS_CHAMFER_BALL_3D)
AIMSALGO_API AimsData< T > AimsMorphoErosion(const AimsData< T > &vol, float size, AimsMorphoMode mode=AIMS_CHAMFER_BALL_3D)
AIMSALGO_API AimsData< T > AimsMorphoDilation(const AimsData< T > &vol, float size, AimsMorphoMode mode=AIMS_CHAMFER_BALL_3D)
AIMSALGO_API AimsData< T > AimsMorphoConnectivityChamferOpening(const AimsData< T > &vol, float size, Connectivity::Type type)
void setChamferBinaryMorphoEnabled(bool x)
AimsMorphoMode
Morphological and chamfer defined modes.
AIMSALGO_API AimsData< T > AimsMorphoConnectivityChamferHomotopicErosion(AimsData< T > &initvol, float size, Connectivity::Type connectivity)
AIMSALGO_API AimsData< T > AimsMorphoConnectivityChamferDilation(const AimsData< T > &vol, float size, Connectivity::Type type)
AIMSALGO_API AimsData< T > AimsMorphoChamferErosion(const AimsData< T > &vol, float size, int xmask=3, int ymask=3, int zmask=3, float mult_fact=50)
Point3d chamferMaskSize() const
void setChamferMaskSize(const Point3d &p)
AIMSALGO_API AimsData< T > AimsMorphoChamferOpening(const AimsData< T > &vol, float size, int xmask=3, int ymask=3, int zmask=3, float mult_fact=50)
AIMSALGO_API AimsData< T > AimsMorphoConnectivityChamferClosing(const AimsData< T > &vol, float size, Connectivity::Type type)
Grey-level mathematical morphology.
AIMSALGO_API AimsData< T > AimsMorphoOpening(const AimsData< T > &vol, float size, AimsMorphoMode mode=AIMS_CHAMFER_BALL_3D)
void setChamferFactor(float x)