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

ID 790148
Date 3/22/2024
Public
Document Table of Contents

TiltedRectStdDev

Computes the standard deviation of the tilted integral images.

Syntax

IppStatus ippiTiltedRectStdDev_32f_C1R(const Ipp32f* pSrc, int srcStep, const Ipp64f* pSqr, int sqrStep, Ipp32f* pDst, int dstStep, IppiSize roiSize, IppiRect rect);

IppStatus ippiTiltedRectStdDev_32s_C1RSfs(const Ipp32s* pSrc, int srcStep, const Ipp32s* pSqr, int sqrStep, Ipp32s* pDst, int dstStep, IppiSize roiSize, IppiRect rect, int scaleFactor);

IppStatus ippiTiltedRectStdDev_32s32f_C1R(const Ipp32s* pSrc, int srcStep, const Ipp64f* pSqr, int sqrStep, Ipp32f* pDst, int dstStep, IppiSize roiSize, IppiRect rect);

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 ROI in the source integral image.

srcStep

Distance in bytes between starts of consecutive lines in the source integral image.

pSqr

Pointer to the ROI in the source integral image of pixel squares.

sqrStep

Distance in bytes between starts of consecutive lines in the source integral image of pixel squares.

pDst

Pointer to the destination image ROI.

dstStep

Distance in bytes between starts of consecutive lines in the destination image.

roiSize

Size of destination image ROI in pixels.

rect

Rectangular window.

scaleFactor

Scale factor (see Integer Result Scaling).

Description

This function operates with ROI (see Regions of Interest in Intel IPP). This function computes the standard deviation for each pixel in the rectangular window rect using the tilted integral image pSrc and tilted integral image of pixel squares pSqr. The computations are performed in accordance with the following formulas:


where i,j are coordinates of the destination image pixels varying in the range i = 0 ,..., roiSize.height - 1, j = 0,..., roiSize.width - 1;

sum = pSrc[ i + rect.x - rect.y + rect.height + rect.width, j + rect.x + rect.y - rect.height + rect.width] - pSrc[i + rect.x - rect.y + rect.width, j + rect.x + rect.y + rect.width] - pSrc[i + rect.x - rect.y + rect.height, j + rect.x - rect.y - rect.height] + pSrc[i + rect.x - rect.y, j + rect.x + rect.y];

sumSqr = pSqr[ i + rect.x - rect.y + rect.height + rect.width, j + rect.x + rect.y - rect.height + rect.width] - pSqr[i + rect.x - rect.y + rect.width, j + rect.x + rect.y + rect.width] - pSqr[i + rect.x - rect.y + rect.height, j + rect.x - rect.y - rect.height] + pSqr[i + rect.x - rect.y, j + rect.x + rect.y];

numPix = 2 * rect.height * rect.width.

The minimum size of each source images pSrc and pSqr should be (roiSize.width + rect.height + rect.width - 2) x (roiSize.height + rect.x + rect.y + rect.height + rect.width - 2).

The source images pSrc and pSqr can be obtained by using the functions ippiTiltedIntegral or ippiTiltedSqrIntegral.

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

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

ippStsSizeErr

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

ippStsSizeErr

Indicates an error condition if rect.width or rect.height is less than or equal to zero, or if rect.x or rect.y is less than zero.

ippStsStepErr

Indicates an error condition if srcStep or sqrStep is less than (roiSize.width+rect.x+rect.width+1) * <pixelSize>, or dstStep is less than roiSize.width * <pixelSize>.

ippStsNotEvenStepErr

Indicates an error condition if sqrStep is not divisible by 8, or one of pSrc and dstStep is not divisible by 4.