如何处理RGB到YUV的转换

max*_*mus 17 opencv image-processing yuv

公式说:

Y = 0.299 * R + 0.587 * G + 0.114 * B;

U = -0.14713 * R - 0.28886 * G + 0.436 * B;

V = 0.615 * R - 0.51499 * G - 0.10001 * B;
Run Code Online (Sandbox Code Playgroud)

例如,如果U变量变为负数怎么办?

U = -0.14713 * R - 0.28886 * G + 0.436 * B;
Run Code Online (Sandbox Code Playgroud)

假设R和G(1)的最大值和B = 0那么,我有兴趣在OpenCV中实现这个对流函数,那么,如何处理负值?使用浮动图像?无论如何请解释我,可能是我不明白的东西..

Dol*_*lph 14

根据YUV颜色平面,当由小数表示时,Y,U和V都被允许为负.

YUV色彩空间


Jac*_*cob 13

您可以使用for YUV-code CV_YCrCb2RGB > RGB和CV_RGBYCrCbRGB-> YUV,使用cvtColor在OpenCV中转换RGB < - > YUV.

void cvCvtColor(const CvArr* src, CvArr* dst, int code)
Run Code Online (Sandbox Code Playgroud)

将图像从一个颜色空间转换为另一个颜色空间.

  • @maximus - 严格来说就是这样.YUV用于模拟电视标准YCrCb是数字的 - 颜色空间不同.但只是非常轻微 (3认同)