Converts an RGB image to gray scale using fixed transform coefficients.
IppStatus ippiRGBToGray_<mod>(const Ipp<datatype>* pSrc, int srcStep, Ipp<datatype>* pDst, int dstStep, IppiSize roiSize);
Supported values for mod:
8u_C3C1R | 16u_C3C1R | 16s_C3C1R | 32f_C3C1R |
8u_AC4C1R | 16u_AC4C1R | 16s_AC4C1R | 32f_AC4C1R |
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. |
The function ippiRGBToGray is declared in the ippcc.h file. It operates with ROI (see Regions of Interest in Intel IPP).
This function converts an RGB image to gray scale (see Figure Converting an RGB Image to Gray Scale) using the following basic equation to compute luma from nonlinear gamma-corrected red, green, and blue values:
Y' = 0.299 * R' + 0.587 * G' + 0.114 * B'
Note that the transform coefficients conform to the standard for the NTSC red, green, and blue CRT phosphors.
Example “Using the ippiRGBToGray Function” demonstrates how to use the function ippiRGBToGray_8u_C3C1R.
ippStsNoErr |
Indicates no error. Any other value indicates an error. |
ippStsNullPtrErr |
Indicates an error condition if pSrc or pDst pointer is NULL. |
ippStsSizeErr |
Indicates an error condition if roiSize has a field with a zero or negative value. |
Ipp8u src[12*3] = { 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255}; Ipp8u dst[4*3]; IppiSize srcRoi = { 4, 3 }; ippiRGBToGray_8u_C3C1R ( src, 12, dst, 4, srcRoi );
Result:
255 0 0 255 0 0 255 0 0 255 0 0 0 255 0 0 255 0 0 255 0 0 255 0 src 0 0 255 0 0 255 0 0 255 0 0 255 76 76 76 76 149 149 149 149 dst 29 29 29 29
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.