OpenVDB
12.0.0
|
Filtering (e.g. diffusion) of narrow-band level sets. An optional scalar field can be used to produce a (smooth) alpha mask for the filtering. More...
#include <openvdb/tools/LevelSetFilter.h>
Inherits LevelSetTracker< GridT, InterruptT >.
Public Types | |
using | BaseType = LevelSetTracker< GridT, InterruptT > |
using | GridType = GridT |
using | MaskType = MaskT |
using | TreeType = typename GridType::TreeType |
using | ValueType = typename TreeType::ValueType |
using | AlphaType = typename MaskType::ValueType |
using | TrimMode = lstrack::TrimMode |
using | LeafType = typename TreeType::LeafNodeType |
using | LeafManagerType = typename tree::LeafManager< TreeType > |
using | LeafRange = typename LeafManagerType::LeafRange |
using | BufferType = typename LeafManagerType::BufferType |
using | MaskTreeType = typename TreeType::template ValueConverter< ValueMask >::Type |
Public Member Functions | |
LevelSetFilter (GridType &grid, InterruptT *interrupt=nullptr) | |
Main constructor from a grid. More... | |
~LevelSetFilter () override | |
Default destructor. More... | |
AlphaType | minMask () const |
Return the minimum value of the mask to be used for the derivation of a smooth alpha value. More... | |
AlphaType | maxMask () const |
Return the maximum value of the mask to be used for the derivation of a smooth alpha value. More... | |
void | setMaskRange (AlphaType min, AlphaType max) |
Define the range for the (optional) scalar mask. More... | |
bool | isMaskInverted () const |
Return true if the mask is inverted, i.e. min->max in the original mask maps to 1->0 in the inverted alpha mask. More... | |
void | invertMask (bool invert=true) |
Invert the optional mask, i.e. min->max in the original mask maps to 1->0 in the inverted alpha mask. More... | |
void | meanCurvature (const MaskType *mask=nullptr) |
One iteration of mean-curvature flow of the level set. More... | |
void | fillet (const MaskType *mask=nullptr) |
One iteration of filleting on the level set. More... | |
void | laplacian (const MaskType *mask=nullptr) |
One iteration of Laplacian flow of the level set. More... | |
void | gaussian (int width=1, const MaskType *mask=nullptr) |
One iteration of a fast separable Gaussian filter. More... | |
void | offset (ValueType offset, const MaskType *mask=nullptr) |
Offset the level set by the specified (world) distance. More... | |
void | median (int width=1, const MaskType *mask=nullptr) |
One iteration of median-value flow of the level set. More... | |
void | mean (int width=1, const MaskType *mask=nullptr) |
One iteration of mean-value flow of the level set. More... | |
template<typename MaskType > | |
void | normalize (const MaskType *mask) |
Iterative normalization, i.e. solving the Eikonal equation. More... | |
void | normalize () |
Iterative normalization, i.e. solving the Eikonal equation. More... | |
template<typename MaskT > | |
void | normalize (const MaskT *mask) |
void | track () |
Track the level set interface, i.e. rebuild and normalize the narrow band of the level set. More... | |
void | prune () |
Set voxels that are outside the narrow band to the background value (if trimming is enabled) and prune the grid. More... | |
void | dilate (int iterations=1) |
Fast but approximate dilation of the narrow band - one layer at a time. Normally we recommend using the resize method below which internally calls dilate (or erode) with the correct number of iterations to achieve the desired half voxel width of the narrow band (3 is recommended for most level set applications). More... | |
void | erode (int iterations=1) |
Erodes the width of the narrow-band and update the background values. More... | |
bool | resize (Index halfWidth=static_cast< Index >(LEVEL_SET_HALF_WIDTH)) |
Resize the width of the narrow band, i.e. perform dilation and renormalization or erosion as required. More... | |
ValueType | getHalfWidth () const |
Return the half width of the narrow band in floating-point voxel units. More... | |
State | getState () const |
Return the state of the tracker (see struct defined above) More... | |
void | setState (const State &s) |
Set the state of the tracker (see struct defined above) More... | |
math::BiasedGradientScheme | getSpatialScheme () const |
void | setSpatialScheme (math::BiasedGradientScheme s) |
Set the spatial finite difference scheme. More... | |
math::TemporalIntegrationScheme | getTemporalScheme () const |
void | setTemporalScheme (math::TemporalIntegrationScheme s) |
Set the spatial finite difference scheme. More... | |
int | getNormCount () const |
void | setNormCount (int n) |
Set the number of normalizations performed per track or normalize call. More... | |
int | getGrainSize () const |
void | setGrainSize (int grainsize) |
Set the grain-size used for multi-threading. More... | |
TrimMode | trimming () const |
Return the trimming mode for voxels outside the narrow band. More... | |
void | setTrimming (TrimMode mode) |
Specify whether to trim voxels outside the narrow band prior to pruning. More... | |
ValueType | voxelSize () const |
void | startInterrupter (const char *msg) |
void | endInterrupter () |
bool | checkInterrupter () |
const GridType & | grid () const |
LeafManagerType & | leafs () |
const LeafManagerType & | leafs () const |
Filtering (e.g. diffusion) of narrow-band level sets. An optional scalar field can be used to produce a (smooth) alpha mask for the filtering.
using AlphaType = typename MaskType::ValueType |
using BaseType = LevelSetTracker<GridT, InterruptT> |
|
inherited |
using GridType = GridT |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
using MaskType = MaskT |
using TreeType = typename GridType::TreeType |
|
inherited |
using ValueType = typename TreeType::ValueType |
|
inline |
Main constructor from a grid.
grid | The level set to be filtered. |
interrupt | Optional interrupter. |
|
inlineoverride |
Default destructor.
|
inlineinherited |
|
inherited |
Fast but approximate dilation of the narrow band - one layer at a time. Normally we recommend using the resize method below which internally calls dilate (or erode) with the correct number of iterations to achieve the desired half voxel width of the narrow band (3 is recommended for most level set applications).
|
inlineinherited |
|
inherited |
Erodes the width of the narrow-band and update the background values.
ValueError | if iterations is larger than the current half-width. |
|
inline |
One iteration of filleting on the level set.
mask | Optional alpha mask. |
See also Level Set Methods and Fast Marching Methods by James Sethian, pp. 204.
|
inline |
One iteration of a fast separable Gaussian filter.
width | Width of the Gaussian kernel in voxel units. |
mask | Optional alpha mask. |
|
inlineinherited |
|
inlineinherited |
Return the half width of the narrow band in floating-point voxel units.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Return the state of the tracker (see struct defined above)
|
inlineinherited |
|
inlineinherited |
|
inline |
Invert the optional mask, i.e. min->max in the original mask maps to 1->0 in the inverted alpha mask.
|
inline |
Return true if the mask is inverted, i.e. min->max in the original mask maps to 1->0 in the inverted alpha mask.
|
inline |
One iteration of Laplacian flow of the level set.
mask | Optional alpha mask. |
|
inlineinherited |
|
inlineinherited |
|
inline |
Return the maximum value of the mask to be used for the derivation of a smooth alpha value.
|
inline |
One iteration of mean-value flow of the level set.
width | Width of the mean-value kernel in voxel units. |
mask | Optional alpha mask. |
|
inline |
One iteration of mean-curvature flow of the level set.
mask | Optional alpha mask. |
|
inline |
One iteration of median-value flow of the level set.
width | Width of the median-value kernel in voxel units. |
mask | Optional alpha mask. |
|
inline |
Return the minimum value of the mask to be used for the derivation of a smooth alpha value.
|
inherited |
Iterative normalization, i.e. solving the Eikonal equation.
|
inlineinherited |
Iterative normalization, i.e. solving the Eikonal equation.
|
inherited |
Offset the level set by the specified (world) distance.
offset | Value of the offset. |
mask | Optional alpha mask. |
|
inherited |
Set voxels that are outside the narrow band to the background value (if trimming is enabled) and prune the grid.
Pruning is done automatically as a step in tracking.
|
inherited |
Resize the width of the narrow band, i.e. perform dilation and renormalization or erosion as required.
|
inlineinherited |
Set the grain-size used for multi-threading.
Define the range for the (optional) scalar mask.
min | Minimum value of the range. |
max | Maximum value of the range. |
Mask values outside the range maps to alpha values of respectfully zero and one, and values inside the range maps smoothly to 0->1 (unless of course the mask is inverted).
ValueError | if min is not smaller than max. |
|
inlineinherited |
Set the number of normalizations performed per track or normalize call.
|
inlineinherited |
Set the spatial finite difference scheme.
|
inlineinherited |
Set the state of the tracker (see struct defined above)
|
inlineinherited |
Set the spatial finite difference scheme.
|
inlineinherited |
|
inlineinherited |
|
inherited |
Track the level set interface, i.e. rebuild and normalize the narrow band of the level set.
|
inlineinherited |
Return the trimming mode for voxels outside the narrow band.
Trimming is enabled by default and is applied automatically prior to pruning.
|
inlineinherited |