原文:http://www.cnblogs.com/starspace/archive/2008/12/16/1356007.html
公式如下:
//数字RGB与YCbCr颜色空间转换的精度
//在这两个公式中RGB和YCbCr各分量的值的范围均为0-255。
// RGB转换为YCbCr
// 这个公式来自:Genesis Microchip. gm6010/gm6015 Programming Guide[M]. California US: Genesis Microchip Company, 2002:85-90
// |Y | |16 | |65.738 129.057 25.06 | |R|
// |Cb| = |128| + (1/256)*|-37.945 -74.494 112.43| *|G|
// |Cr | |128| |112.439 -94.154 -18.28| |B|
// YCbCr转换为RGB
// 这个公式来自:Genesis Microchip. gm6015 Preliminary Data Sheet[M]. California US: Genesis Microchip Company, 2001:33-34
//|R| |298.082 0 408.58 | |Y -16 |
//|G| = (1/256)*|298.082 -100.291 -208.12|* |Cb-128|
//|B| |298.082 516.411 0 | |Cr -128|
加一点我的代码,为什么要加我的代码呢,不是因为写的代码好,只不过是我把上面公式中的矩阵/256算成小数了,这样子我们可以省点时间:
// RGB转换为YCbCr
for(i =0 ; i < dest->dwSize; )
{
UCHAR r,g,b;
r = sBuf[i+0];
g = sBuf[i+1];
b = sBuf[i+2];
dBuf[i+0]= (unsigned char)(r * 0.256789 + g * 0.504129 + b * 0.097906)+ 16;
dBuf[i+1]= (unsigned char)(r *-0.148223 + g * -0.290992 + b * 0.439215)+ 128;
dBuf[i+2]= (unsigned char)(r * 0.439215 + g * -0.367789 + b *-0.071426)+ 128;
i += 3;
}
// YCbCr转换为RGB
for(i =0 ; i < dest->dwSize; )
{
UCHAR y,u,v;
y = sBuf[i+0];
u = sBuf[i+1];
v = sBuf[i+2];
dBuf[i+0]= (unsigned char)(1.164383*(y- 16) + 0 + 1.596027*(v - 128));
dBuf[i+1]= (unsigned char)(1.164383*(y- 16) - 0.391762*(u - 128) - 0.812969*(v - 128));
dBuf[i+2]= (unsigned char)(1.164383*(y- 16) + 2.017230*(u - 128) + 0 );
i += 3;
}
分享到:
相关推荐
数字RGB与YCbCr颜色空间转换的精度.pdf 图书馆数据库资源
本程序功能强大,实现了图片读取,滤波处理,RGB HIS YCbCr颜色空间的转换,并实现了肤色分割。开发平台是MATLAB! 主要功能如下 1、完成RGB<->HSI 之间的转换; 2、完成RGB<->YCbCr 之间的转换, 并显示直方图; 3、...
了解图像颜色空间的转换关系。 了解图像的文件结构。 实验内容 完成如下颜色空间的转换。(4 Points) RGB -> YIQ RGB -> HSI RGB -> YCbCr RGB -> XYZ 选做: 自己实现对 BMP 文件头的读取,并解析 BMP 图像文件。 ...
实现RGB颜色空间到HSV和YCbCr颜色空间的转换
详细描述了SDTV HDTV中RGB颜色空间到YCbCr颜色空间的相互转换
实现功能: 实验目标 了解图像颜色空间的转换关系。 了解图像的文件结构。 实验内容 完成如下颜色空间的转换。(4 Points) RGB -> YIQ RGB -> HSI RGB -> YCbCr RGB -> XYZ 选做: 自己实现对 BMP 文件头的读取,并...
实现功能: 实验目标 了解图像颜色空间的转换关系。 了解图像的文件结构。 实验内容 完成如下颜色空间的转换。(4 Points) RGB -> YIQ RGB -> HSI RGB -> YCbCr RGB -> XYZ 选做: 自己实现对 BMP 文件头的读取,并...
利用verilog实现RGB 到YCbCr 4:2:2的颜色空间转换,基于BT.709 limitRGB公式,并在modelsim中进行仿真,以bmp位图作为信号源输入,实现RGB到YC,YC到RGB转换后再转成bmp输出。 不知怎么更改上传的代码程序,所以...
图像显示,YCbCr色彩空间与RGB转换,实现反色和灰度图像显示
大部分算法都可以将彩色图像从RGB空间转换至YCbCr空间,由于图像的结构细节以及强度信息主要集中在Y通道中,因此通常将Y通道作为融合算法的输入并生成融合的Y通道。对于只有一幅图像包含色彩信息的融合场景像红外和...
各种颜色空间之间的转换,还有各种颜色模型的详细说明和用途!
支持两种YCBCR与RGB的转换标准:HDTV和SDTV。分别采用BT656和BT709系数转换。
通过分析YCbCr到RGB以及RGB到HSV之间转换的算法,提出一种YCbCr空间转换到HSV空间的快速算法。在该算法中分别使用了移位运算和查表法代替了浮点乘法运算,从而显著提高了算法在DSP上的运行速度。另外,转换时Y分量...
YUV和RGB 色彩空间 什么是YCbCr ;YUV420P 和 YUV420SP 的区别;YUV和RGB的区别和互相转换
该软件包可在 sRGB、Y'PbPr、Y'CbCr、JPEG-Y'CbCr、Y'UV、Y'IQ、Y'DbDr、HSV、HSL、HSI、CIE XYZ、CIE L*a*b*( CIE... B = colorspace(S,A) 转换图像 A 的颜色表示,其中 S 是指定转换的字符串。 S 告诉源和目标颜色
介绍了一种视频压缩系统中使用的色彩空间转换(从RGB到YCbCr)模块的FPGA实现。首先,使用FMC算法实现了色彩空间转换模块,并基于色彩空间转换模块在视频压缩系统中的应用特点提出了一种改进方式,在该方法中使用了...
一款真正全能空间转换代码!畅想颜色自由转换!支持以下类型! RGB' = sRGB IEC 61966-2-1 'YPbPr' = Luma (ITU-R BT.601) + Chroma 'YCbCr' = Luma + Chroma 'JPEG-YCbCr' = space used in JPEG 'YUV' = NTSC ...
C和SSE优化代码将RGB转换为NV12色彩空间。 NV12格式定义: NV12格式是YUV 4:2:0格式,其在内存中的顺序是第一个Y平面,然后是在交错的UV平面中压缩的色度样本。 例子: YYYYYY YYYYYY 紫外线 RGB颜色格式,指的是...
介绍视频处理过程中涉及到的两个颜色空间:RGB和YCbCr,以及他们之间的转换。用查表法优化媒体播放软件中YCbCr到RGB的转换,以达到提高转换速度,减少计算量,提高视频解码整体性能的Ifl的。