Back to Adaptive Vision Library website

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


Header: AVL.h
Namespace: avl
Module: FoundationBasic

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

Applications: Removing small parts from a region without making it thinner.


void avl::OpenRegion
	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 opening, which is a tool used for removing thin parts from a region. The operation is a convolution of two basic morphological operations:

  • Firstly, the input region is eroded using ErodeRegion operation.
  • Then, the resulting region is dilated using DilateRegion operation.

During the erosion thin parts of a region are eliminated, while further dilation assures that the width of region limbs is preserved.

Both of the component operations are conducted using the same inKernel, inRadiusX and inRadiusY parameters.


  • Increase inRadiusX to remove more small parts from the region.
  • Change inKernel to Ellipse to make the filter work equally strongly in each direction (execution will be slower).


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


List of possible exceptions:

Error type Description
DomainError Unsupported kernel in OpenRegion.

See Also

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