Developer Reference for Intel® Integrated Performance Primitives
Converts an RGB image to the XYZ color model.
IppStatus ippiRGBToXYZ_<mod>(const Ipp<datatype>* pSrc, int srcStep, Ipp<datatype>* pDst, int dstStep, IppiSize roiSize);
Supported values for mod:
8u_C3R | 16u_C3R | 16s_C3R | 32f_C3R |
8u_AC4R | 16u_AC4R | 16s_AC4R | 32f_AC4R |
ippcc.h
Headers: ippcore.h, ippvm.h, ipps.h, ippi.h
Libraries: ippcore.lib, ippvm.lib, ipps.lib, ippi.lib
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. |
roiSize |
Size of the source and destination ROI in pixels. |
This function operates with ROI (see Regions of Interest in Intel IPP).
This function converts the RGB image pSrc to the CIEXYZ image pDst according to the following basic equations:
X = 0.412453*R + 0.35758 *G + 0.180423*B
Y = 0.212671*R + 0.71516 *G + 0.072169*B
Z = 0.019334*R + 0.119193*G + 0.950227*B
The equations above are given on the assumption that R,G, and B values are normalized to the range [0..1]. In case of the floating-point data type, the input RGB values must already be in the range [0..1]. For integer data types, normalization is done by the conversion function internally.
The computed XYZ values are saturated if they fall out of range [0..1].
In case of integer function flavors, these values are then scaled to the full range of the destination data type (see Table “Image Data Types and Ranges”).
ippStsNoErr |
Indicates no error. Any other value indicates an error. |
ippStsNullPtrErr |
Indicates an error condition if pSrc or pDst is NULL. |
ippStsSizeErr |
Indicates an error condition if roiSize has a field with a zero or negative value. |