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

RegionHitAndMissTransform
Header: | FIL.h |
---|---|
Namespace: | fil |
Module: | FoundationBasic |
Performs a hit-and-miss transformation on a region using arbitrary kernels.
Syntax
void fil::RegionHitAndMissTransform ( const fil::Region& inRegion, const fil::Region& inHitKernel, ftl::Optional<const fil::Location&> inHitKernelAnchor, const fil::Region& inMissKernel, ftl::Optional<const fil::Location&> inMissKernelAnchor, fil::Region& outRegion )
Parameters
Name | Type | Default | Description | |
---|---|---|---|---|
![]() |
inRegion | const Region& | Input region | |
![]() |
inHitKernel | const Region& | The kernel of pixels that should be present | |
![]() |
inHitKernelAnchor | Optional<const Location&> | NIL | Location withing inHitKernel, defining its center |
![]() |
inMissKernel | const Region& | The kernel of pixels that should be missing | |
![]() |
inMissKernelAnchor | Optional<const Location&> | NIL | Location withing inMissKernel, defining its center |
![]() |
outRegion | Region& | Output region |
Description
The operation performs a hit-and-miss transformation. Similarly to other region morphology operations, hit-and-miss is conducted using a shape called kernel (or structuring element). In this particular case, there are two kernels: inHitKernel and inMissKernel. Both of them are 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 inHitKernel pixels centered at L lie inside and all of the inMissKernel pixels centered at L lie outside the input region.
Examples
![]() |
![]() |
RegionHitAndMissTransform run with kernels \( \begin{bmatrix} 1 & X & X\\ 1 & 0 & X\\ 1 & X & X \end{bmatrix} \) where \( 1 \)'s represent pixels from inHitKernel, \( 0 \)'s from inMissKernel and \( X \)'s the other ones.
Errors
List of possible exceptions:
Error type | Description |
---|---|
DomainError | Hit kernel empty in RegionHitAndMissTransform. |
DomainError | Inconsistent region dimensions in RegionHitAndMissTransform. |
DomainError | Miss kernel empty in RegionHitAndMissTransform. |
See Also
- ErodeRegion_AnyKernel – Performs a morphological erosion on a region using an arbitrary kernel.
- DilateRegion_AnyKernel – Performs a morphological dilation on a region using an arbitrary kernel.