Back to Adaptive Vision Library website

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


Header: AVL.h
Namespace: avl
Module: FoundationBasic

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

Applications: Making the region thicker or filling-in small holes within it.


void avl::DilateRegion
	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 dilation, which is a basic tool used for region expansion. Similarly to other region morphology operations, dilation 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 at least one 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 expansion performed equally in all directions.
  • Setting inRadiusX to higher value than inRadiusY results in expansion performed more significantly along horizontal axis.


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


DilateRegion run with inKernel = Ellipse of dimensions inRadiusX = 5, inRadiusY = 5.


List of possible exceptions:

Error type Description
DomainError Unsupported kernel in DilateRegion.

See Also

  • CloseRegion – Performs a morphological closing on a region using selected predefined kernel.
  • ErodeRegion – Performs a morphological erosion on a region using a predefined kernel.