fast::EulerGradientVectorFlow class

Gradient vector flow using Euler method.

Gradient vector flow is a spatial diffusion of vectors often used for segmentation. This 2D/3D GPU implementation is described in the article "Real-time gradient vector flow on GPUs using OpenCL" by Smistad et. al 2015: https://www.eriksmistad.no/wp-content/uploads/gpu_gradient_vector_flow_opencl.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<EulerGradientVectorFlow>
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<EulerGradientVectorFlow> fast::EulerGradientVectorFlow::create(float mu, uint iterations, bool use16bitStorage)

Create instance.

Parameters
mu
iterations
use16bitStorage

void fast::EulerGradientVectorFlow::set16bitStorageFormat()

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

void fast::EulerGradientVectorFlow::set32bitStorageFormat()

Use 32 bit format internally instead of 16 bit.