fast::GaussianSmoothing class

Smoothing by convolution with a Gaussian mask.

Supports 2D, 3D and anisotropic smoothing (e.g. different standard deviation for each dimension). Also supports multi-channel (e.g. RGB) smoothing, in this case smoothing is applied per channel.

Inputs:

Outputs:

Base classes

class ProcessObject
Abstract base class for all process objects.

Derived classes

class ImageSharpening
Image sharpening by the unsharp masking method.

Constructors, destructors, conversion operators

~GaussianSmoothing()

Public functions

auto create(float stdDev, uchar maskSize) -> std::shared_ptr<GaussianSmoothing>
Create instance.
auto create(std::vector<float> stdDev, std::vector<int> maskSize) -> std::shared_ptr<GaussianSmoothing>
Create instance.
void setMaskSize(int maskSize)
void setMaskSize(std::vector<int> maskSize)
void setStandardDeviation(float stdDev)
void setStandardDeviation(std::vector<float> stdDev)
void setOutputType(DataType type)
void loadAttributes() override

Protected functions

void execute() virtual
void waitToFinish() virtual
void createMask(Image::pointer input, Vector3i maskSize, bool useSeperableFilter)
void recompileOpenCLCode(Image::pointer input)

Protected variables

Vector3i mMaskSize
Vector3f mStdDev
cl::Buffer mCLMask
std::unique_ptr<float[]> mMask
bool mRecreateMask
cl::Kernel mKernel
unsigned char mDimensionCLCodeCompiledFor
DataType mTypeCLCodeCompiledFor
DataType mOutputType
bool mOutputTypeSet

Function documentation

std::shared_ptr<GaussianSmoothing> fast::GaussianSmoothing::create(float stdDev, uchar maskSize)

Create instance.

Parameters
stdDev Standard deviation of convolution kernel
maskSize Size of convolution filter/mask. Must be odd. If 0 filter size is determined automatically from standard deviation
Returns instance

std::shared_ptr<GaussianSmoothing> fast::GaussianSmoothing::create(std::vector<float> stdDev, std::vector<int> maskSize)

Create instance.

Parameters
stdDev Standard deviation of convolution kernel for each dimension
maskSize Size of convolution filter/mask for each dimension. Must be odd. If 0, or not given, mask size is determined automatically from standard deviation
Returns instance