Intel® Integrated Performance Primitives Developer Guide and Reference

ID 790148
Date 11/07/2023
Public

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

Document Table of Contents

Threshold_LTValGTVal

Performs double thresholding of pixel values in an image buffer.

Syntax

Case 1: Not-in-place operation on one-channel data

IppStatus ippiThreshold_LTValGTVal_<mod>(const Ipp<datatype>* pSrc, int srcStep, Ipp<datatype>* pDst, int dstStep, IppiSize roiSize, Ipp<datatype> thresholdLT, Ipp<datatype> valueLT, Ipp<datatype> thresholdGT, Ipp<datatype> valueGT);

Supported values for mod:

8u_C1R

16u_C1R

16s_C1R

32f_C1R

Case 2: Not-in-place operation on multi-channel data

IppStatus ippiThreshold_LTValGTVal_<mod>(const Ipp<datatype>* pSrc, int srcStep, Ipp<datatype>* pDst, int dstStep, IppiSize roiSize, const Ipp<datatype> thresholdLT[3], const Ipp<datatype> valueLT[3], const Ipp<datatype> thresholdGT[3], const Ipp<datatype> valueGT[3]);

Supported values for mod:

8u_C3R

16u_C3R

16s_C3R

32f_C3R

8u_AC4R

16u_AC4R

16s_AC4R

32f_AC4R

Case 3: In-place operation on one-channel data

IppStatus ippiThreshold_LTValGTVal_<mod>(Ipp<datatype>* pSrcDst, int srcDstStep, IppiSize roiSize, Ipp<datatype> thresholdLT, Ipp<datatype> valueLT, Ipp<datatype> thresholdGT, Ipp<datatype> valueGT);

Supported values for mod:

8u_C1IR

16u_C1IR

16s_C1IR

32f_C1IR

Case 4: In-place operation on multi-channel data

IppStatus ippiThreshold_LTValGTVal_<mod>(Ipp<datatype>* pSrcDst, int srcDstStep, IppiSize roiSize, const Ipp<datatype> thresholdLT[3], const Ipp<datatype> valueLT[3], const Ipp<datatype> thresholdGT[3], const Ipp<datatype> valueGT[3]);

Supported values for mod

8u_C3IR

16u_C3IR

16s_C3IR

32f_C3IR

8u_AC4IR

16u_AC4IR

16s_AC4IR

32f_AC4IR

Include Files

ippi.h

Domain Dependencies

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

Libraries: ippcore.lib, ippvm.lib, ipps.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 destination image ROI.

dstStep

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

pSrcDst

Pointer to the source and destination image ROI (for the in-place operation).

srcDstStep

Distance in bytes between starts of consecutive lines in the source and destination image buffer (for the in-place operation).

roiSize

Size of the source and destination ROI in pixels.

thresholdLT

The lower threshold value to use for each pixel.In case of multi-channel data, an array of three lower threshold values (one for each color channel) is used.

valueLT

The lower output value to be set for each pixel that is less than thresholdLT. In case of multi-channel data, an array of 3 lower output values (one for each color channel) is used.

thresholdGT

The upper threshold value to use for each pixel.In case of multi-channel data, an array of three upper threshold values (one for each color channel) is used.

valueGT

The upper output value to be set for each pixel that exceeds thresholdGT. In case of multi-channel data, an array of three upper output values (one for each color channel) is used.

Description

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

This function thresholds pixels in the source image pSrc using two specified levels thresholdLT and thresholdGT. Pixel values in the source image are compared to these levels. If the pixel value is less than thresholdLT, the corresponding output pixel is set to valueLT. If the pixel value is greater than thresholdGT, the output pixel is set to valueGT. Otherwise, it is set to the source pixel value. The value of thresholdLT should be less than or equal to thresholdGT.

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 pointer is NULL.

ippStsSizeErr

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

ippStsThresholdErr

Indicates an error when thresholdLT is greater than thresholdGT.

ippStsStepErr

Indicates an error condition if srcStep, dstStep, or srcDstStep has a zero or negative value.

Example

The code example below illustrates thresholding with two levels.

IppStatus threshold( void ) {
   Ipp8u x[5*4];
   IppiSize roi = {5,4};
   int i;

   for( i=0; i<5*4; ++i ) x[i] = (Ipp8u)i;

   return ippiThreshold_LTValGTVal_8u_C1IR( x, 5, roi, 2,1,6,7 );
}

The destination image x contains:

  01 01 02 03 04
  05 06 07 07 07
  07 07 07 07 07
  07 07 07 07 07