35#ifndef AIMS_MORPHOLOGY_OPERATORMORPHO_H
36#define AIMS_MORPHOLOGY_OPERATORMORPHO_H
39#include <aims/connectivity/connectivity_g.h>
45 template <
typename T>
class Volume;
108 float mult_fact=50 );
131 float mult_fact=50 );
153 float mult_fact=50 );
165 template <
typename T>
196 std::vector<Point3d> doStructElement(
float radius,
217 std::vector<Point3d> list;
219 float _chamfer_factor;
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 > AimsMorphoDilation(const carto::rc_ptr< carto::Volume< T > > &vol, float size, AimsMorphoMode mode=AIMS_CHAMFER_BALL_3D)
carto::VolumeRef< T > AimsMorphoErosion(const carto::rc_ptr< carto::Volume< T > > &vol, float size, AimsMorphoMode mode=AIMS_CHAMFER_BALL_3D)
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 > 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 > AimsMorphoClosing(const carto::rc_ptr< carto::Volume< T > > &vol, float size, AimsMorphoMode mode=AIMS_CHAMFER_BALL_3D)
carto::VolumeRef< T > AimsMorphoConnectivityChamferClosing(const carto::rc_ptr< carto::Volume< T > > &vol, float size, Connectivity::Type type)
carto::VolumeRef< T > AimsMorphoOpening(const carto::rc_ptr< carto::Volume< T > > &vol, float size, AimsMorphoMode mode=AIMS_CHAMFER_BALL_3D)
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)
AimsMorphoMode
Morphological and chamfer defined modes.
carto::VolumeRef< T > AimsMorphoConnectivityChamferDilation(const carto::rc_ptr< carto::Volume< T > > &vol, float size, Connectivity::Type type)
carto::VolumeRef< T > AimsMorphoConnectivityChamferErosion(const carto::rc_ptr< carto::Volume< T > > &vol, float size, Connectivity::Type type)
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 > AimsMorphoChamferOpening(const carto::rc_ptr< carto::Volume< T > > &vol, float size, int xmask=3, int ymask=3, int zmask=3, float mult_fact=50)
AimsVector< int16_t, 3 > Point3d
AimsVector< float, 4 > Point4df