Developer Reference

  • 2020
  • 07/15/2020
  • Public Content
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

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804