Back to Adaptive Vision Library website

You are here: Start » Function Reference » Image » Image Local Transforms » SmoothImage_Gauss


Header: AVL.h
Namespace: avl
Module: FoundationLite

Smooths an image using a gaussian kernel.

Applications: Removal of gaussian noise from images.


void avl::SmoothImage_Gauss
	const avl::Image& inImage,
	atl::Optional<const avl::Region&> inRoi,
	float inStdDevX,
	atl::Optional<float> inStdDevY,
	const float inKernelRelativeSize,
	avl::Image& outImage,
	int& diagKernelRadiusX,
	int& diagKernelRadiusY


Name Type Range Default Description
inImage const Image& Input image
inRoi Optional<const Region&> NIL Range of output pixels to be computed
inStdDevX float 0.0 - 1.0f Horizontal smoothing standard deviation
inStdDevY Optional<float> 0.0 - NIL Vertical smoothing standard deviation
inKernelRelativeSize const float 0.0 - 3.0 2.0f A multiple of the standard deviation determining the size of the kernel
outImage Image& Output image
diagKernelRadiusX int& Horizontal radius of Gaussian kernel being used
diagKernelRadiusY int& Vertical radius of Gaussian kernel being used


  • To make smoothing stronger, increase the inStdDevX and - optionally - inStdDevY.
  • Increase inKernelRelativeSize to achieve better quality at the cost of a bit longer execution time.
  • For small kernels consider switching to SmoothImage_Gauss_Mask to achieve the highest performance.


SmoothImage_Gauss performed on a sample image with inStdDevX = 3.0.

Hardware Acceleration

This operation is optimized for SSE2 technology for pixels of types: UINT8, SINT16, REAL.

This operation is optimized for SSE41 technology for pixels of type: UINT16.

This operation is optimized for AVX2 technology for pixels of types: UINT8, SINT16, UINT16, REAL.

This operation supports automatic parallelization for multicore and multiprocessor systems.


List of possible exceptions:

Error type Description
DomainError Region exceeds an input image in SmoothImage_Gauss.