Intel® Integrated Performance Primitives (Intel® IPP) Developer Guide and Reference

ID 790148
Date 6/24/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

TrueDistanceTransform

Calculates the Eucledian distance to the closest zero pixel for all non-zero pixels of the source image.

Syntax

IppStatus ippiTrueDistanceTransform_8u32f_C1R(const Ipp8u* pSrc, int srcStep, Ipp32f* pDst, int dstStep, IppiSize roiSize, Ipp8u* pBuffer);

Include Files

ippcv.h

Domain Dependencies

Headers: ippcore.h, ippvm.h, ipps.h, ippi.h

Libraries: ippcore.lib, ippvm.lib, ipps.lib, ippi.lib

Parameters

pSrc
Pointer to the source image ROI.
srcStep
Distance in bytes between starts of consecutive lines in the source image.
pDst
Pointer to the ROI in the destination distance image.
dstStep
Distance in bytes between starts of consecutive lines in the destination image.
roiSize
Size of the image ROI in pixels.
pBuffer
Pointer to the temporary working buffer.

Description

This function operates with ROI (see Regions of Interest in Intel IPP).

This function calculates the Eucledian distance to the closest zero pixel for all non-zero pixels of the source image [Felz04].

The figure below shows the result of the integer version of the true distance transform of a 7x7 image with zero point in the center and with the scale factor -5.

136 115 101 96 101 115 136
115 91 72 64 72 91 115
101 72 45 36 45 72 101
96 64 36 0 36 64 96
101 72 45 36 45 72 101
115 91 72 64 72 91 115
136 115 101 96 101 115 136

Return Values

ippStsNoErr

Indicates no error. Any other value indicates an error or a warning.

ippStsNullPtrErr

Indicates an error condition if one of the specified pointers is NULL.

ippStsSizeErr

Indicates an error condition if roiSize has a field with zero or negative value.

ippStsStepErr

Indicates an error condition if srcStep or dstStep is less than roiSize.width*<pixelSize>.

ippStsNotEvenStepErr

Indicates an error condition if step value is not divisible by 2 for 16u images, and by 4 for 32f images.