VIP: Volume Image Processing


skeleton.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <limits.h>
#include <errno.h>
#include <math.h>
#include <vip/util.h>
#include <vip/volume.h>
#include <vip/connex.h>
#include <vip/bucket.h>
#include <vip/pyramid.h>
#include <vip/topology.h>
#include <vip/skeleton/skeleton_gen.h>
Include dependency graph for skeleton.h:

Go to the source code of this file.

Macros

#define VIP_INITIAL_FRONT_SIZE   500000
 
#define VIP_FRONT_SIZE_INCREMENT   200000
 
#define VIP_FRONT   -123
 
#define NON_SIMPLE_AND_NON_VOLUME_BECOME_IMMORTAL   77
 
#define SURFACES_BECOME_IMMORTAL   78
 
#define CURVES_BECOME_IMMORTAL   79
 
#define NOBODY_BECOME_IMMORTAL   80
 
#define FRONT_6CONNECTIVITY_DIRECTION   88
 
#define FRONT_RANDOM_ORDER   107
 
#define FRONT_RANDOM_AND_DEPTH   108
 

Functions

int VipHomotopicErosionFromInsideSnake (Volume *vol, Volume *graylevel, int nb_iteration, int object, int inside, int outside, float KISING, float mG, float sigmaG, float mW, float sigmaW)
 
int VipHomotopicInsideDilationSnakeRidge (Volume *ridge, Volume *vol, Volume *graylevel, int nb_iteration, int object, int inside, int outside, int front_mode, float KISING, float mG, float sigmaG, float mW, float sigmaW)
 
int VipHomotopicInsideDilationSnake (Volume *vol, Volume *graylevel, int nb_iteration, int object, int inside, int outside, int front_mode, float KISING, float mG, float sigmaG, float mW, float sigmaW)
 
int VipHomotopicInsideDilation (Volume *vol, Volume *mask, int nb_iteration, int object, int inside, int outside, int front_mode)
 
int VipFoetusHomotopicInsideDilationSnake (Volume *vol, Volume *graylevel, int nb_iteration, int object, int inside, int outside, int front_mode, float KISING, float mG, float sigmaG, float mW, float sigmaW)
 
int VipHomotopicInsideSoftDilationSnake (Volume *vol, Volume *graylevel, int nb_iteration, int object, int inside, int outside, int front_mode, float KISING, float mG, float sigmaG, float mW, float sigmaW)
 
int VipHomotopicGeodesicErosionFromOutside (Volume *vol, int nb_iteration, int object, int inside, int outside)
 
int VipHomotopicErosionFromInside (Volume *vol, Volume *graylevel, int nb_iteration, int object, int inside, int outside)
 
PyramidVipCreateBoundingBoxLabelPyramid (Pyramid *pdata, int nlevel, int object, int inside, int outside)
 
int VipHomotopicOutsidePruning (Volume *vol, int inside, int outside)
 
int VipHomotopicGeodesicDilation (Volume *vol, int nb_iteration, int object, int domain, int forbiden, int outside, int front_mode)
 
int VipHomotopicCurvePruning (Volume *vol, int inside, int outside)
 
int VipHomotopicSkeleton (Volume *vol, int immortal_elixir, int front_mode, int keep_immortals)
 
int VipWatershedHomotopicSkeleton (Volume *vol, Volume *altitude, int immortal_elixir, int inside, int outside)
 
VolumeConvertBrainToAltitude (Volume *brain, float sigma, float level0, float levelmax, float wave_erosion, int bwidth, float threshold)
 
VolumeConvertMeanCurvToAltitude (Volume *meancurv, float level0, float levelmax, float wave_erosion, int bwidth, float threshold)
 
int VipFillNextFrontFromOldFront (Vip_S16BIT *first_vol_point, VipIntBucket *buck, VipIntBucket *nextbuck, VipConnectivityStruct *vcs, int next_value, int front_value)
 
VipIntBucketVipCreateFrontIntBucket (Volume *vol, int connectivity, int front_value)
 
int VipCleanUpFrontFromImmortals (Topology26Neighborhood *topo26, int immortal_elixir, Vip_S16BIT *first_vol_point, VipIntBucket *buck, VipIntBucket *nextbuck, int *immortals, int front_value)
 
VipIntBucketVipCreateFrontIntBucketForDilation (Volume *vol, int connectivity, int front_value, int object, int domain, int front_mode)
 
int VipFillNextFrontFromOldFrontForDilation (Vip_S16BIT *first_vol_point, VipIntBucket *buck, VipIntBucket *nextbuck, VipConnectivityStruct *vcs, int next_value, int front_value, int object)
 
VipIntBucketVipCreateFrontIntBucketForErosionFromOutside (Volume *vol, int connectivity, int front_value, int object, int outside)
 
int VipFillNextFrontFromOldFrontForErosionFromOutside (Vip_S16BIT *first_vol_point, VipIntBucket *buck, VipIntBucket *nextbuck, VipConnectivityStruct *vcs, int next_value, int front_value, int outside, int inside)
 
int VipFillNextFrontFromOldFrontForErosion (Vip_S16BIT *first_vol_point, VipIntBucket *buck, VipIntBucket *nextbuck, VipConnectivityStruct *vcs, int next_value, int front_value, int outside, int inside)
 
VipIntBucketVipCreateFrontIntBucketHollowObject (Volume *vol, int connectivity, int front_value, int inside, int outside)
 
int VipCleanUpFrontFromImmortalsHollowObject (Topology26Neighborhood *topo26, int immortal_elixir, Vip_S16BIT *first_vol_point, VipIntBucket *buck, VipIntBucket *nextbuck, int *immortals, int front_value, int inside, int outside)
 
int VipFillNextFrontFromOldFrontHollowObject (Vip_S16BIT *first_vol_point, VipIntBucket *buck, VipIntBucket *nextbuck, VipConnectivityStruct *vcs, int front_value, int inside, int outside)
 
int VipRandomizeFrontOrder (VipIntBucket *front, int nloop)
 
int VipWatershedFrontPropagation (Volume *vol, Volume *altitude, Volume *plan_hemi, int int_min, int int_max, int domain, int outside, int nb_interval, int connectivity)
 
int VipFillNextFrontFromOldFrontVoronoiObject (Vip_S16BIT *first_vol_point, VipIntBucket *buck, VipIntBucket *nextbuck, VipConnectivityStruct *vcs, int front_value, int domain, int outside)
 
VipIntBucketVipCreateFrontIntBucketVoronoiObject (Volume *vol, int connectivity, int front_value, int domain, int outside)
 
int VipHomotopicWellComposedErosionFromOutside (Volume *vol, int nb_iteration, Vip_S16BIT object, Vip_S16BIT inside, Vip_S16BIT outside)
 
int VipHomotopicWellComposedDilationTowardInside (Volume *vol, int nb_iteration, Vip_S16BIT object, Vip_S16BIT inside, Vip_S16BIT forbidden, Vip_S16BIT outside, int front_mode)
 

Macro Definition Documentation

◆ CURVES_BECOME_IMMORTAL

#define CURVES_BECOME_IMMORTAL   79

Definition at line 51 of file skeleton.h.

◆ FRONT_6CONNECTIVITY_DIRECTION

#define FRONT_6CONNECTIVITY_DIRECTION   88

Definition at line 54 of file skeleton.h.

◆ FRONT_RANDOM_AND_DEPTH

#define FRONT_RANDOM_AND_DEPTH   108

Definition at line 57 of file skeleton.h.

◆ FRONT_RANDOM_ORDER

#define FRONT_RANDOM_ORDER   107

Definition at line 56 of file skeleton.h.

◆ NOBODY_BECOME_IMMORTAL

#define NOBODY_BECOME_IMMORTAL   80

Definition at line 52 of file skeleton.h.

◆ NON_SIMPLE_AND_NON_VOLUME_BECOME_IMMORTAL

#define NON_SIMPLE_AND_NON_VOLUME_BECOME_IMMORTAL   77

Definition at line 49 of file skeleton.h.

◆ SURFACES_BECOME_IMMORTAL

#define SURFACES_BECOME_IMMORTAL   78

Definition at line 50 of file skeleton.h.

◆ VIP_FRONT

#define VIP_FRONT   -123

Definition at line 47 of file skeleton.h.

◆ VIP_FRONT_SIZE_INCREMENT

#define VIP_FRONT_SIZE_INCREMENT   200000

Definition at line 46 of file skeleton.h.

◆ VIP_INITIAL_FRONT_SIZE

#define VIP_INITIAL_FRONT_SIZE   500000

Definition at line 45 of file skeleton.h.

Function Documentation

◆ ConvertBrainToAltitude()

Volume * ConvertBrainToAltitude ( Volume * brain,
float sigma,
float level0,
float levelmax,
float wave_erosion,
int bwidth,
float threshold )
extern

◆ ConvertMeanCurvToAltitude()

Volume * ConvertMeanCurvToAltitude ( Volume * meancurv,
float level0,
float levelmax,
float wave_erosion,
int bwidth,
float threshold )
extern

◆ VipCleanUpFrontFromImmortals()

int VipCleanUpFrontFromImmortals ( Topology26Neighborhood * topo26,
int immortal_elixir,
Vip_S16BIT * first_vol_point,
VipIntBucket * buck,
VipIntBucket * nextbuck,
int * immortals,
int front_value )
extern

◆ VipCleanUpFrontFromImmortalsHollowObject()

int VipCleanUpFrontFromImmortalsHollowObject ( Topology26Neighborhood * topo26,
int immortal_elixir,
Vip_S16BIT * first_vol_point,
VipIntBucket * buck,
VipIntBucket * nextbuck,
int * immortals,
int front_value,
int inside,
int outside )
extern

◆ VipCreateBoundingBoxLabelPyramid()

Pyramid * VipCreateBoundingBoxLabelPyramid ( Pyramid * pdata,
int nlevel,
int object,
int inside,
int outside )
extern

◆ VipCreateFrontIntBucket()

VipIntBucket * VipCreateFrontIntBucket ( Volume * vol,
int connectivity,
int front_value )
extern

◆ VipCreateFrontIntBucketForDilation()

VipIntBucket * VipCreateFrontIntBucketForDilation ( Volume * vol,
int connectivity,
int front_value,
int object,
int domain,
int front_mode )
extern

◆ VipCreateFrontIntBucketForErosionFromOutside()

VipIntBucket * VipCreateFrontIntBucketForErosionFromOutside ( Volume * vol,
int connectivity,
int front_value,
int object,
int outside )
extern

◆ VipCreateFrontIntBucketHollowObject()

VipIntBucket * VipCreateFrontIntBucketHollowObject ( Volume * vol,
int connectivity,
int front_value,
int inside,
int outside )
extern

◆ VipCreateFrontIntBucketVoronoiObject()

VipIntBucket * VipCreateFrontIntBucketVoronoiObject ( Volume * vol,
int connectivity,
int front_value,
int domain,
int outside )
extern

◆ VipFillNextFrontFromOldFront()

int VipFillNextFrontFromOldFront ( Vip_S16BIT * first_vol_point,
VipIntBucket * buck,
VipIntBucket * nextbuck,
VipConnectivityStruct * vcs,
int next_value,
int front_value )
extern

◆ VipFillNextFrontFromOldFrontForDilation()

int VipFillNextFrontFromOldFrontForDilation ( Vip_S16BIT * first_vol_point,
VipIntBucket * buck,
VipIntBucket * nextbuck,
VipConnectivityStruct * vcs,
int next_value,
int front_value,
int object )
extern

◆ VipFillNextFrontFromOldFrontForErosion()

int VipFillNextFrontFromOldFrontForErosion ( Vip_S16BIT * first_vol_point,
VipIntBucket * buck,
VipIntBucket * nextbuck,
VipConnectivityStruct * vcs,
int next_value,
int front_value,
int outside,
int inside )
extern

◆ VipFillNextFrontFromOldFrontForErosionFromOutside()

int VipFillNextFrontFromOldFrontForErosionFromOutside ( Vip_S16BIT * first_vol_point,
VipIntBucket * buck,
VipIntBucket * nextbuck,
VipConnectivityStruct * vcs,
int next_value,
int front_value,
int outside,
int inside )
extern

◆ VipFillNextFrontFromOldFrontHollowObject()

int VipFillNextFrontFromOldFrontHollowObject ( Vip_S16BIT * first_vol_point,
VipIntBucket * buck,
VipIntBucket * nextbuck,
VipConnectivityStruct * vcs,
int front_value,
int inside,
int outside )
extern

◆ VipFillNextFrontFromOldFrontVoronoiObject()

int VipFillNextFrontFromOldFrontVoronoiObject ( Vip_S16BIT * first_vol_point,
VipIntBucket * buck,
VipIntBucket * nextbuck,
VipConnectivityStruct * vcs,
int front_value,
int domain,
int outside )
extern

◆ VipFoetusHomotopicInsideDilationSnake()

int VipFoetusHomotopicInsideDilationSnake ( Volume * vol,
Volume * graylevel,
int nb_iteration,
int object,
int inside,
int outside,
int front_mode,
float KISING,
float mG,
float sigmaG,
float mW,
float sigmaW )
extern

◆ VipHomotopicCurvePruning()

int VipHomotopicCurvePruning ( Volume * vol,
int inside,
int outside )
extern

◆ VipHomotopicErosionFromInside()

int VipHomotopicErosionFromInside ( Volume * vol,
Volume * graylevel,
int nb_iteration,
int object,
int inside,
int outside )
extern

◆ VipHomotopicErosionFromInsideSnake()

int VipHomotopicErosionFromInsideSnake ( Volume * vol,
Volume * graylevel,
int nb_iteration,
int object,
int inside,
int outside,
float KISING,
float mG,
float sigmaG,
float mW,
float sigmaW )

◆ VipHomotopicGeodesicDilation()

int VipHomotopicGeodesicDilation ( Volume * vol,
int nb_iteration,
int object,
int domain,
int forbiden,
int outside,
int front_mode )
extern

◆ VipHomotopicGeodesicErosionFromOutside()

int VipHomotopicGeodesicErosionFromOutside ( Volume * vol,
int nb_iteration,
int object,
int inside,
int outside )
extern

◆ VipHomotopicInsideDilation()

int VipHomotopicInsideDilation ( Volume * vol,
Volume * mask,
int nb_iteration,
int object,
int inside,
int outside,
int front_mode )
extern

◆ VipHomotopicInsideDilationSnake()

int VipHomotopicInsideDilationSnake ( Volume * vol,
Volume * graylevel,
int nb_iteration,
int object,
int inside,
int outside,
int front_mode,
float KISING,
float mG,
float sigmaG,
float mW,
float sigmaW )
extern

◆ VipHomotopicInsideDilationSnakeRidge()

int VipHomotopicInsideDilationSnakeRidge ( Volume * ridge,
Volume * vol,
Volume * graylevel,
int nb_iteration,
int object,
int inside,
int outside,
int front_mode,
float KISING,
float mG,
float sigmaG,
float mW,
float sigmaW )
extern

◆ VipHomotopicInsideSoftDilationSnake()

int VipHomotopicInsideSoftDilationSnake ( Volume * vol,
Volume * graylevel,
int nb_iteration,
int object,
int inside,
int outside,
int front_mode,
float KISING,
float mG,
float sigmaG,
float mW,
float sigmaW )

◆ VipHomotopicOutsidePruning()

int VipHomotopicOutsidePruning ( Volume * vol,
int inside,
int outside )
extern

◆ VipHomotopicSkeleton()

int VipHomotopicSkeleton ( Volume * vol,
int immortal_elixir,
int front_mode,
int keep_immortals )
extern

◆ VipHomotopicWellComposedDilationTowardInside()

int VipHomotopicWellComposedDilationTowardInside ( Volume * vol,
int nb_iteration,
Vip_S16BIT object,
Vip_S16BIT inside,
Vip_S16BIT forbidden,
Vip_S16BIT outside,
int front_mode )

◆ VipHomotopicWellComposedErosionFromOutside()

int VipHomotopicWellComposedErosionFromOutside ( Volume * vol,
int nb_iteration,
Vip_S16BIT object,
Vip_S16BIT inside,
Vip_S16BIT outside )

◆ VipRandomizeFrontOrder()

int VipRandomizeFrontOrder ( VipIntBucket * front,
int nloop )
extern

◆ VipWatershedFrontPropagation()

int VipWatershedFrontPropagation ( Volume * vol,
Volume * altitude,
Volume * plan_hemi,
int int_min,
int int_max,
int domain,
int outside,
int nb_interval,
int connectivity )
extern

◆ VipWatershedHomotopicSkeleton()

int VipWatershedHomotopicSkeleton ( Volume * vol,
Volume * altitude,
int immortal_elixir,
int inside,
int outside )
extern