Back to Adaptive Vision Library Lite website

You are here: Start » Image Local Transforms » SmoothImage_Mean



Smooths an image by averaging pixels within a rectangular kernel.


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
inImage const Image& Input image
inRoi Optional<const Region&> NIL Range of outImage pixels to be computed
inSourceRoi Optional<const Region&> NIL Range of inImage pixels to be read
inBorderColor Optional<Pixel> NIL Color of the imaginary pixels outside the image boundaries
inKernel KernelShape::Type Kernel shape
inRadiusX int 0 - 1 Nearly half of the kernel's width (2*R+1)
inRadiusY Optional<int> 0 - NIL Nearly half of the kernel's height (2*R+1), or same as inRadiusX
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 supports automatic parallelization for multicore and multiprocessor systems.


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.