Back to Aurora Vision Library website

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

BottomHatImage


Header: AVL.h
Namespace: avl
Module: FoundationLite

Performs a morphological black top hat (bottom hat) operation on a image using a predefined kernel.

Syntax

C++
C#
 
void avl::BottomHatImage
(
	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,
	avl::Region& diagKernel
)

Parameters

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 considered in computations
Input value inBorderColor Optional<Pixel> NIL Color of the imaginary pixels outside the image boundaries
Input value inKernel KernelShape::Type Selects 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
Output value outImage Image& Output image
Diagnostic input diagKernel Region& Kernel shape

In-place Processing

This function supports in-place data processing - you can pass the same reference to inImage and outImage

Read more about In-place Computation.

Description

Extracts from image small objects that are darker than surroundings.

Is performed by running consecutively two filters. CloseImage to get the image without small objects and SubtractFromImage to remove everything but them.

Examples

Bottom Hat used to remove bigger objects. Used parameters inKernel=Ellipse and inRadiusX=6. Source image on the left and result on the right.

Hardware Acceleration

This operation is optimized for SSE2 technology for pixels of types: all formats (when inSourceRoi = NIL and inBorderColor = NIL).

This operation is optimized for NEON technology for pixels of types: all formats (when inSourceRoi = NIL and inBorderColor = NIL).

This operation supports automatic parallelization for multicore and multiprocessor systems.

Errors

List of possible exceptions:

Error type Description
DomainError Region exceeds an input image in BottomHatImage.