fast::MultigridGradientVectorFlow class

Gradient vector flow using the multigrid method.

This is only implemented for 3D. Gradient vector flow is a spatial diffusion of vectors often used for segmentation. This 3D GPU implementation is described in the article "Multigrid gradient vector flow computation on the GPU" by Smistad et. al 2014: https://www.eriksmistad.no/wp-content/uploads/multigrid_gradient_vector_flow_computation_on_the_gpu.pdf

Base classes

class ProcessObject
Abstract base class for all process objects.

Public functions

auto create(float mu, uint iterations, bool use16BitStorage) -> std::shared_ptr<MultigridGradientVectorFlow>
Create instance.
void setIterations(uint iterations)
void setMuConstant(float mu)
auto getMuConstant() const -> float
void set16bitStorageFormat()
void set32bitStorageFormat()

Private functions

void execute() virtual

Function documentation

std::shared_ptr<MultigridGradientVectorFlow> fast::MultigridGradientVectorFlow::create(float mu, uint iterations, bool use16BitStorage)

Create instance.

Parameters
mu
iterations
use16BitStorage
Returns instance

void fast::MultigridGradientVectorFlow::set16bitStorageFormat()

Use 16 bit format internally to reduce memory usage and increase performance. This will slightly reduce accuracy/convergence.

void fast::MultigridGradientVectorFlow::set32bitStorageFormat()

Use 32 bit format internally instead of 16 bit.