Back to Adaptive Vision Library website

You are here: Start » Function Reference » Region » Region Morphology » ErodeRegion


Header: AVL.h
Namespace: avl
Module: FoundationBasic

Performs a morphological erosion on a region using a predefined kernel.

Applications: Making the region thinner or removing small parts.


void avl::ErodeRegion
	const avl::Region& inRegion,
	avl::KernelShape::Type inKernel,
	int inRadiusX,
	atl::Optional<int> inRadiusY,
	avl::Region& outRegion


Name Type Range Default Description
inRegion const Region& Input region
inKernel KernelShape::Type Kernel shape (predefined)
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
outRegion Region& Output region


The operation performs a morphological erosion, which is a basic tool used for region shrinking. Similarly to other region morphology operations, erosion is conducted using a shape called kernel (or structuring element). The kernel is repeatedly centered at each location within the dimensions of the input region. Then, pixel location L is added to the resulting region if and only if all of the input region pixels lies inside the kernel centered at this (L) location.

The input parameter inKernel allows to choose the shape of a kernel, while parameters inRadiusX, inRadiusY allow to determine its dimensions. For instance:

  • inKernel = Ellipse together with inRadiusX = inRadiusY results in shrinking performed equally in all directions.
  • Setting inRadiusX to higher value than inRadiusY results in shrinking performed more significantly along horizontal axis.


  • Increase inRadiusX to make the output region thinner.
  • Change inKernel to Ellipse to make the filter work equally strongly in each direction (execution will be slower).


ErodeRegion run with inKernel = Ellipse of dimensions inRadiusX = 3, inRadiusY = 3.


List of possible exceptions:

Error type Description
DomainError Unsupported kernel in ErodeRegion.

See Also

  • OpenRegion – Performs a morphological opening on a region using a predefined kernel.
  • DilateRegion – Performs a morphological dilation on a region using a predefined kernel.