Volume Cartographer 2.27.0
Static Public Member Functions | List of all members
volcart::segmentation::EnergyMetrics Class Reference

A collection of energy metrics for evaluating a FittedCurve. More...

#include <vc/segmentation/lrps/EnergyMetrics.hpp>

Static Public Member Functions

static double ActiveContourInternal (const FittedCurve &curve, double k1, double k2)
 Calculate the active contour internal energy of a FittedCurve. More...
 
static double TotalEnergy (const FittedCurve &curve, double alpha, double k1, double k2, double beta, double delta)
 Combinatorial energy metric for a FittedCurve. More...
 
static double AbsCurvatureSum (const FittedCurve &curve)
 Sum of the absolute value of local curvature at each point along the curve. More...
 
static double LocalWindowedArcLength (const FittedCurve &curve, int index, int windowSize)
 Calculate the arc length of the curve within a window centered at a point along the curve. More...
 
static double WindowedArcLength (const FittedCurve &curve, int windowSize)
 Average LocalWindowedArcLength() across the entire curve. More...
 

Detailed Description

A collection of energy metrics for evaluating a FittedCurve.

Definition at line 15 of file EnergyMetrics.hpp.

Member Function Documentation

◆ AbsCurvatureSum()

static double volcart::segmentation::EnergyMetrics::AbsCurvatureSum ( const FittedCurve curve)
static

Sum of the absolute value of local curvature at each point along the curve.

Parameters
curveInput curve

◆ ActiveContourInternal()

static double volcart::segmentation::EnergyMetrics::ActiveContourInternal ( const FittedCurve curve,
double  k1,
double  k2 
)
static

Calculate the active contour internal energy of a FittedCurve.

k1 and k2 are user-defined weights on the first and second derivatives of the curve.

From Wikipedia: "These control the internal energy function's sensitivity to the amount of stretch in the snake and the amount of curvature in the snake, respectively, and thereby control the number of constraints on the shape of the snake. In practice, a large weight k1 for the continuity term penalizes changes in distances between points in the contour. A large weight k2 for the smoothness term penalizes oscillations in the contour and will cause the contour to act as a thin plate."

See also
https://en.wikipedia.org/wiki/Active_contour_model#Internal_energy
Parameters
curveInput curve
k1Stretch weight factor
k2Curvature weight factor

◆ LocalWindowedArcLength()

static double volcart::segmentation::EnergyMetrics::LocalWindowedArcLength ( const FittedCurve curve,
int  index,
int  windowSize 
)
static

Calculate the arc length of the curve within a window centered at a point along the curve.

Parameters
curveInput curve
indexCenter point of calculation window
windowSizeSize of calculation window

◆ TotalEnergy()

static double volcart::segmentation::EnergyMetrics::TotalEnergy ( const FittedCurve curve,
double  alpha,
double  k1,
double  k2,
double  beta,
double  delta 
)
static

Combinatorial energy metric for a FittedCurve.

Calculates a weighted sum of ActiveContourInternal(), AbsCurvatureSum(), and WindowedArcLength().

\[
E_t = \alpha ACI(k1, k2) + \beta ACS() + \delta WAL(3);
\]

To disable a metric, simply set its coefficient to zero.

Parameters
curveInput curve
alphaActiveContourInternal() total weight factor
k1ActiveContourInternal() stretch weight factor
k2ActiveContourInternal() curvature weight factor
betaAbsCurvatureSum() total weight factor
deltaWindowedArcLength() total weight factor

◆ WindowedArcLength()

static double volcart::segmentation::EnergyMetrics::WindowedArcLength ( const FittedCurve curve,
int  windowSize 
)
static

Average LocalWindowedArcLength() across the entire curve.

Parameters
curveInput curve
windowSizeSize of calculation window

The documentation for this class was generated from the following file: