fast::NonLocalMeans class

Multiscale Non-Local Means (NLM) smoothing.

Non-Local Means (NLM) is an excellent despeckling filter for ultrasound images. This GPU implementation is based on the article "Real-Time Nonlocal Means-Based Despeckling" by Breivik et al. 2017.

Base classes

class ProcessObject
Abstract base class for all process objects.

Public functions

auto create(int filterSize, int searchSize, float smoothingAmount, float inputMultiplicationWeight, int multiScaleIterations) -> std::shared_ptr<NonLocalMeans>
Creates instance of this process object.
void setSmoothingAmount(float parameterH)
void setPreProcess(bool preProcess)
void setMultiscaleIterations(int iterations)
void setSearchSize(int searchSize)
void setFilterSize(int filterSize)
void setInputMultiplicationWeight(float weight)
void loadAttributes() override

Private functions

void execute() override

Function documentation

std::shared_ptr<NonLocalMeans> fast::NonLocalMeans::create(int filterSize, int searchSize, float smoothingAmount, float inputMultiplicationWeight, int multiScaleIterations)

Creates instance of this process object.

Parameters
filterSize Size in pixels of the filter region to search for. Must be odd.
searchSize How many pixels to search in each direction. Must be odd.
smoothingAmount Parameter to control the amount of smoothing.
inputMultiplicationWeight If > 0, the input image will be multiplied with the output with this weight.
multiScaleIterations Number of multiscale iterations to perform
Returns smart pointer to instance