8#ifndef GRAYSKELETONCPP_VOLUME_SKELETONIZER_H
9#define GRAYSKELETONCPP_VOLUME_SKELETONIZER_H
15 namespace GraySkeletonCPP {
static const char PRUNING_CLASS_PRUNE_CURVES
static bool Are26Neighbors(Vec3< int > u, Vec3< int > v)
static const char THINNING_CLASS_CURVE_PRESERVATION
static void MarkSurfaces(Volume *skeleton)
static Volume * GetJuTopologySkeleton(Volume *sourceVolume, Volume *preserve, double threshold)
static const char PRUNING_CLASS_PRUNE_POINTS
VolumeSkeletonizer(int pointRadius, int curveRadius, int surfaceRadius, int skeletonDirectionRadius=DEFAULT_SKELETON_DIRECTION_RADIUS)
static const char PRUNING_CLASS_PRUNE_SURFACES
static void PruneSurfaces(Volume *sourceVolume, int pruneLength)
static Volume * GetJuThinning(Volume *sourceVolume, Volume *preserve, double threshold, char thinningClass)
static void VoxelOr(Volume *sourceAndDestVolume1, Volume *sourceVolume2)
static const char THINNING_CLASS_POINT_PRESERVATION
int skeletonDirectionRadius
static Volume * GetJuCurveSkeleton(Volume *sourceVolume, Volume *preserve, double threshold, bool is3D)
static void CleanUpSkeleton(Volume *skeleton, int minNumVoxels=4, float valueThreshold=0.5)
static Volume * PerformPureJuSkeletonization(Volume *imageVol, string outputPath, double threshold, int minCurveWidth, int minSurfaceWidth)
static const char THINNING_CLASS_CURVE_PRESERVATION_2D
static Volume * GetJuSurfaceSkeleton(Volume *sourceVolume, Volume *preserve, double threshold)
static const char THINNING_CLASS_SURFACE_PRESERVATION
static const char THINNING_CLASS_TOPOLOGY_PRESERVATION
static void PruneCurves(Volume *sourceVolume, int pruneLength)
const int DEFAULT_SKELETON_DIRECTION_RADIUS
const int MAX_GAUSSIAN_FILTER_RADIUS