YUV422 --> RGB 代码

简介:

原文:http://blog.csdn.net/zhongnanjun_3/article/details/3941974


/*
R = Y + 1.4075 *(V-128)
 G = Y – 0.3455 *(U –128) – 0.7169 *(V –128)
 B = Y + 1.779 *(U – 128)
*/
unsigned char GetYUVR(int nY,int nU,int nV)
{
    int nR;    //V=nV-128
    nR = nY + (nV-128)+((nV-128)*103>>8);// v + ((v * 103) >> 8);
    //overflow?
    if( nR > 255 )
    nR = 255;
    if( nR < 0 )
    nR = 0;    
    return nR;
}
unsigned char GetYUVG(int nY,int nU,int nV)
{
    int nG;    //U = nU-128
    nG = nY - (((nU-128)*88>>8)+((nV-128)*183>>8));//((u * 88) >> 8) +((v * 183) >> 8);
    //overflow?
    if( nG > 255 )
    nG = 255;
    if( nG < 0 )
    nG = 0;    
    return nG;    
}
unsigned char GetYUVB(int nY,int nU,int nV)
{
    int nB;
    nB = nY + (nU-128)+((nU-128)*198>>8);//u +( (u*198) >> 8);
    //overflow?
    if( nB > 255 )
    nB = 255;
    if( nB < 0 )
    nB = 0;        
    return nB;
}
////////////////////////////////////////////////////////
nPixelData = ( nR&0xF8 ) | nG>>5;
    SoPbSPITXByte( nPixelData);//R5G6B5 :high
     
    nPixelData    = ( nG<<3 &0xE0) | nB>>3;
    SoPbSPITXByte( nPixelData );//R5G6B5 :Low
//////////////////////////////////////////////////////////
想看看彩色图片的黑白效果 看看:
    nPixelData = ((* nPIC)&0xF8 )| (* nPIC)>>5 ;//R=G=B=Y:R5G6B5 :high
    SoPbSPITXByte( nPixelData);//(*(unsigned char*)DataAddr);//
    
    nPixelData    = ((* nPIC)<<3 &0xE0) | (* nPIC)>>3;//Y0//R=G=B=Y:R5G6B5 :Low
    SoPbSPITXByte( nPixelData );//R5G6B5 :Low

相关文章
|
6天前
|
存储 编解码 监控
RGB 和 YUV 区别
【10月更文挑战第26天】RGB和YUV在色彩表示原理、数据存储方式、应用场景以及转换关系等方面都存在着明显的区别,它们各自在不同的领域发挥着重要的作用。
|
存储 编解码 Android开发
NV21、NV12、YV12、RGB、YUV、RGBA、RGBX8888等图像色彩编码格式区别
NV21、NV12、YV12、RGB、YUV、RGBA、RGBX8888都是常见的图像颜色编码格式,它们之间的主要区别在于色彩空间和数据排列方式。
208 0
|
编解码 API 开发工具
NV21、NV12、YV12、RGB565、YUV等颜色编码格式区别和接口设计探讨
NV21、NV12、YV12、RGB565、YUV分别是不同的颜色编码格式,这些颜色编码格式各有特点,适用于不同的应用场景。选择合适的颜色编码格式取决于具体的需求和环境:
229 1
FreeSwitch中,RGB颜色转换为YUV
FreeSwitch中,RGB颜色转换为YUV
88 0
|
存储 算法 知识图谱
RGB与YUV相互转换
本文介绍YUV跟RGB互转的各种公式,以及推导原理
362 0
RGB转换为NV12的代码
RGB转换为NV12的代码
249 0
CMKY与RGB的转换
CMKY与RGB的转换
106 0
YUV 与 RGB的转换
RGB 转换成 YUV Y = (0.257 * R) + (0.504 * G) + (0.
5439 0
|
编解码
理解 RGB & YUV 颜色编码
理解 RGB & YUV 颜色编码
475 0
理解 RGB & YUV 颜色编码
使用FFMPEG的sws_scale函数实现各种原始颜色格式互转(YUV\RGB\)
使用FFMPEG的sws_scale函数实现各种原始颜色格式互转(YUV\RGB\)
848 0