RGB到YUV转换的vc代码

图像处理中经常要进行颜色空间的转换,因为摄像头采集的图像格式通常是RGB24或RGB32的,而YUV格式的图像更易于处理,能减小光照的影响。
下面是RGB到YUV转换的vc函数代码:


void RGBToYUV(unsigned char r,unsigned char g,unsigned char b,float &y,float &u,float &v)
{
    y = 0.299*r + 0.587*g + 0.114*b;
    u = (-0.169)*r + (-0.331)*g + 0.5*b + 128;
    v = 0.5*r + (-0.419)*g + (-0.082)*b + 128;
}


如果要追求代码效率,减少浮点算法的话,也可以用以下代码实现RGB到YUV颜色空间的转换,效果相同:


    y=(unsigned char)((299*r+587*g+114*b)/1000);
    u=(unsigned char)(((-169)*r+(-331)*g+500*b+128000)/1000);
    v=(unsigned char)((500*r+(-419)*g+(-82)*b+128000)/1000);


[本日志由 cnfgg 于 2009-06-29 03:11 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: vc RGB YUV 代码
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.