35 #ifndef AIMS_MORPHOLOGY_OPERATORMORPHO_H
36 #define AIMS_MORPHOLOGY_OPERATORMORPHO_H
45 template <
typename T>
class Volume;
46 template <
typename T>
class VolumeRef;
101 template <
typename T>
108 float mult_fact=50 );
111 template <
typename T>
120 template <
typename T>
124 template <
typename T>
131 float mult_fact=50 );
133 template <
typename T>
142 template <
typename T>
146 template <
typename T>
153 float mult_fact=50 );
156 template <
typename T>
165 template <
typename T>
196 std::vector<Point3d> doStructElement(
float radius,
217 std::vector<Point3d> list;
219 float _chamfer_factor;
Grey-level mathematical morphology.
carto::VolumeRef< T > doClosing(const carto::VolumeRef< T > &dataIn, float radius)
float chamferFactor() const
carto::VolumeRef< T > doErosion(const carto::VolumeRef< T > &dataIn, float radius)
virtual ~MorphoGreyLevel()
void setChamferBinaryMorphoEnabled(bool x)
bool isChamferBinaryMorphoEnabled() const
when enabled, on binary images, the chamfer-based morphomath is used instead of the grey-level one.
void setChamferMaskSize(const Point3d &p)
static bool isBinary(const carto::VolumeRef< T > &dataIn)
void setChamferFactor(float x)
int neededBorderWidth() const
Point3d chamferMaskSize() const
carto::VolumeRef< T > doDilation(const carto::VolumeRef< T > &dataIn, float radius)
carto::VolumeRef< T > doOpening(const carto::VolumeRef< T > &dataIn, float radius)
carto::VolumeRef< T > AimsMorphoConnectivityChamferOpening(const carto::rc_ptr< carto::Volume< T > > &vol, float size, Connectivity::Type type)
carto::VolumeRef< T > AimsMorphoConnectivityChamferHomotopicErosion(carto::rc_ptr< carto::Volume< T > > &initvol, float size, Connectivity::Type connectivity)
carto::VolumeRef< T > AimsMorphoConnectivityChamferClosing(const carto::rc_ptr< carto::Volume< T > > &vol, float size, Connectivity::Type type)
carto::VolumeRef< T > AimsMorphoDilation(const carto::rc_ptr< carto::Volume< T > > &vol, float size, AimsMorphoMode mode=AIMS_CHAMFER_BALL_3D)
carto::VolumeRef< T > AimsMorphoConnectivityChamferErosion(const carto::rc_ptr< carto::Volume< T > > &vol, float size, Connectivity::Type type)
carto::VolumeRef< T > AimsMorphoClosing(const carto::rc_ptr< carto::Volume< T > > &vol, float size, AimsMorphoMode mode=AIMS_CHAMFER_BALL_3D)
AimsMorphoMode
Morphological and chamfer defined modes.
carto::VolumeRef< T > AimsMorphoChamferErosion(const carto::rc_ptr< carto::Volume< T > > &vol, float size, int xmask=3, int ymask=3, int zmask=3, float mult_fact=50)
carto::VolumeRef< T > AimsMorphoOpening(const carto::rc_ptr< carto::Volume< T > > &vol, float size, AimsMorphoMode mode=AIMS_CHAMFER_BALL_3D)
carto::VolumeRef< T > AimsMorphoChamferDilation(const carto::rc_ptr< carto::Volume< T > > &vol, float size, int xmask=3, int ymask=3, int zmask=3, float mult_fact=50)
carto::VolumeRef< T > AimsMorphoChamferClosing(const carto::rc_ptr< carto::Volume< T > > &vol, float size, int xmask=3, int ymask=3, int zmask=3, float mult_fact=50)
carto::VolumeRef< T > AimsMorphoConnectivityChamferDilation(const carto::rc_ptr< carto::Volume< T > > &vol, float size, Connectivity::Type type)
carto::VolumeRef< T > AimsMorphoErosion(const carto::rc_ptr< carto::Volume< T > > &vol, float size, AimsMorphoMode mode=AIMS_CHAMFER_BALL_3D)
carto::VolumeRef< T > AimsMorphoChamferOpening(const carto::rc_ptr< carto::Volume< T > > &vol, float size, int xmask=3, int ymask=3, int zmask=3, float mult_fact=50)