Performs thresholding of pixel values in an image buffer.
Case 1: Not-in-place operation on one-channel data
IppStatus ippiThreshold_<mod>(const Ipp<datatype>* pSrc, int srcStep, Ipp<datatype>* pDst, int dstStep, IppiSize roiSize, Ipp<datatype> threshold, IppCmpOp ippCmpOp);
Supported values for mod:
8u_C1R |
16u_C1R |
16s_C1R |
32f_C1R |
Case 2: Not-in-place operation on multi-channel data
IppStatus ippiThreshold_<mod>(const Ipp<datatype>* pSrc, int srcStep, Ipp<datatype>* pDst, int dstStep, IppiSize roiSize, const Ipp<datatype> threshold[3], IppCmpOp ippCmpOp);
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_<mod>(Ipp<datatype>* pSrcDst, int srcDstStep, IppiSize roiSize, Ipp<datatype> threshold, IppCmpOp ippCmpOp);
Supported values for mod:
8u_C1IR |
16u_C1IR |
16s_C1IR |
32f_C1IR |
Case 4: In-place operation on multi-channel data
IppStatus ippiThreshold_<mod>(Ipp<datatype>* pSrcDst, int srcDstStep, IppiSize roiSize, const Ipp<datatype> threshold[3], IppCmpOp ippCmpOp);
Supported values for mod:
8u_C3IR |
16u_C3IR |
16s_C3IR |
32f_C3IR |
8u_AC4IR |
16u_AC4IR |
16s_AC4IR |
32f_AC4IR |
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. |
threshold |
The threshold level value to use for each pixel. In case of multi-channel data, an array of threshold values for each color channel is used. |
ippCmpOp |
The operation specified for comparing pixel values and the threshold. Comparison for either “less than” or “greater than” can be used. |
The function ippiThreshold is declared in the ippi.h file. It operates with ROI (see Regions of Interest in Intel IPP).
This function thresholds pixels in the source image pSrc using the specified level threshold. Pixel values in the source image are compared to the threshold value using the ippCmpOp comparison operation.
If the result of the compare is true, the corresponding output pixel is set to the threshold value. Otherwise, it is set to the source pixel value.
Example “Using the ippiThreshold Function” shows how to use the ippiThreshold_8u_C1R function.
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. |
ippStsStepErr |
Indicates an error condition if srcStep, dstStep, or srcDstStep has a zero or negative value |
ippStsNotSupportedModeErr |
Indicates an error if the comparison mode is not supported. |
void func_threshold() { IppiSize ROI = {5,4}; Ipp8u src[9*4] = {1, 2, 4, 8, 16, 8, 4, 2, 1, 1, 2, 4, 8, 16, 8, 4, 2, 1, 1, 2, 4, 8, 16, 8, 4, 2, 1, 1, 2, 4, 8, 16, 8, 4, 2, 1}; Ipp8u dst[9*4]; Ipp8u threshold = 6; ippiThreshold_8u_C1R(src, 9, dst, 9, ROI, threshold, ippCmpGreater); }
Result: dst
1 2 4 6 6 8 4 2 1
1 2 4 6 6 8 4 2 1
1 2 4 6 6 8 4 2 1
1 2 4 6 6 8 4 2 1
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.