Back to Aurora Vision Library website

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


Header: AVL.h
Namespace: avl
Module: FoundationLite

Smooths an image by averaging pixels within a rectangular kernel.

Applications: Usually used for computing features related to local image "windows". Can be also used for noise removal, but Gauss is superior here.


void avl::SmoothImage_Mean
	const avl::Image& inImage,
	atl::Optional<const avl::Region&> inRoi,
	atl::Optional<const avl::Region&> inSourceRoi,
	atl::Optional<avl::Pixel> inBorderColor,
	avl::KernelShape::Type inKernel,
	int inRadiusX,
	atl::Optional<int> inRadiusY,
	avl::Image& outImage


Name Type Range Default Description
Input value
inImage const Image& Input image
Input value
inRoi Optional<const Region&> NIL Range of outImage pixels to be computed
Input value
inSourceRoi Optional<const Region&> NIL Range of inImage pixels to be read
Input value
inBorderColor Optional<Pixel> NIL Color of the imaginary pixels outside the image boundaries
Input value
inKernel KernelShape::Type Kernel shape
Input value
inRadiusX int 0 - 1 Nearly half of the kernel's width (2*R+1)
Input value
inRadiusY Optional<int> 0 - NIL Nearly half of the kernel's height (2*R+1), or same as inRadiusX
Output value
outImage Image& Output image


Replaces each pixel with the average of all pixels contained in a rectangular kernel. The width of the kernel is 2 * inRadiusX + 1, the height is 2 * inRadiusY + 1. When inRadiusY is set to Auto, then its value is implicitly copied from inRadiusX.


  • Define the size of the kernel by setting inRadiusX and - optionally - inRadiusY.
  • Highest performance will be achieved with inKernel = Box. Other kernel shapes will result is longer execution time.
  • Define inSourceRoi is some pixels of the input images should be ignored (advanced).


SmoothImage_Mean performed on a sample image with inRadiusX = 4.

Hardware Acceleration

This operation is optimized for PARALLEL SSE2 technology for pixels of types: UINT8, SINT8, SINT16, SINT32, 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, SINT8, SINT16, SINT32, REAL, UINT16.

This operation is optimized for NEON technology for pixels of types: UINT8, UINT16.


List of possible exceptions:

Error type Description
DomainError inBorderColor is relevant only when inSourceRoi is set to Auto (NIL) in SmoothImage_Mean.
DomainError Not supported kernel on input in SmoothImage_Mean.
DomainError Region exceeds an input image in SmoothImage_Mean.