YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式。
因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式。
RGB与YUV的变换公式如下:

YUV(256 级别) 可以从8位 RGB 直接计算:

Y = 0.299 R + 0.587 G + 0.114 B
U = - 0.1687 R - 0.3313 G + 0.5 B + 128
V = 0.5 R - 0.4187 G - 0.0813 B + 128

反过来,RGB 也可以直接从YUV (256级别) 计算:

R = Y + 1.402 (V-128)
G = Y - 0.34414 (U-128) - 0.71414 (V-128)
B = Y + 1.772 (U-128)

例程:
按照YUV与RGB的变换公式,逐像素访问Y、U、V分量的值,并转换成RGB:

bool YV12ToBGR24_Native(unsigned char* pYUV,unsigned char* pBGR24,int width,int height)
{if (width < 1 || height < 1 || pYUV == NULL || pBGR24 == NULL)return false;const long len = width * height;unsigned char* yData = pYUV;unsigned char* vData = &yData[len];unsigned char* uData = &vData[len >> 2];int bgr[3];int yIdx,uIdx,vIdx,idx;for (int i = 0;i < height;i++){for (int j = 0;j < width;j++){yIdx = i * width + j;vIdx = (i/2) * (width/2) + (j/2);uIdx = vIdx;bgr[0] = (int)(yData[yIdx] + 1.732446 * (uData[vIdx] - 128));                                    // b分量bgr[1] = (int)(yData[yIdx] - 0.698001 * (uData[uIdx] - 128) - 0.703125 * (vData[vIdx] - 128));    // g分量bgr[2] = (int)(yData[yIdx] + 1.370705 * (vData[uIdx] - 128));                                    // r分量for (int k = 0;k < 3;k++){idx = (i * width + j) * 3 + k;if(bgr[k] >= 0 && bgr[k] <= 255)pBGR24[idx] = bgr[k];elsepBGR24[idx] = (bgr[k] < 0)?0:255;}}}return true;
}

图像 YUV与RGB格式转换相关推荐

  1. 【DSP开发】【VS开发】YUV与RGB格式转换

    [视频处理]YUV与RGB格式转换 YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式. 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式. RGB与 ...

  2. 数据压缩实验一:yuv转rgb格式实验报告

    数据压缩实验一:yuv转rgb格式实验报告 一:实验基本原理 yuv转rgb格式转换公式: R=Y+1.4020*(V-128) G=Y-0.3441*(U-128)-0.7141*(V-128) B ...

  3. YUV与RGB格式详解

    YUV 是一种颜色编码方法,和它等同的还有 RGB 颜色编码方法. RGB 颜色编码 RGB 三个字母分别代表了 红(Red).绿(Green).蓝(Blue),这三种颜色称为 三原色,将它们以不同的 ...

  4. yuv与rgb的转换矩阵推导过程

    文章目录 yuv与rgb的转换矩阵推导过程 yuv与rgb互转公式 yuv420p转rgb888矩阵 优化一下 参考 yuv与rgb的转换矩阵推导过程 在网上经常看到一些shader里用了矩阵就能把y ...

  5. A311D用工业相机APP获取raw图像并做各种格式转换

    A311D用工业相机APP获取raw图像并做各种格式转换 目录 主要涉及的知识点有: 2 RAW 图格式转换(主要意义) 2 Android 通用串口通信,及usb转串口通信 2 1先创建androi ...

  6. YUY2(YUV) 与 RGB 格式图片的相互转换 以及 基于YUY2(YUV)的blending

    这是一个项目里使用的,API里从pool里取出的格式都是YUY2,但是图像处理的API库中要求都是jepg格式. YUY2经常用于电视制式以及许多摄像头的输出格式.而我们在处理时经常需要将其转化为RG ...

  7. yuv与rgb图像格式转换

    一.前言 本次试验内容为将256*256,采样为4:2:0的yuv图像转为rgb格式.老师提供了rgb2yuv的源码,经过分析,发现源码已经极其优雅高效,命名方式合理,内存分配刚刚好,还运用了查找表的 ...

  8. YUY2(YUV) 与 RGB 格式图片的相互转换

    [版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/jtujtujtu/article/d ...

  9. 图像指针与矩阵格式转换——Mat转uchar*及uchar*转Mat代码实现

    本篇文章实现RGB3通道图像Mat转uchar及uchar转Mat,编程环境:vs2013,opencv2.4.13 ,由于OpenCV读入和显示都是BGR类型,本文显示图像也用的BGR格式,若需换成 ...

  10. YUV与RGB格式的相互转换及误差

    一.RGB转YUV 1.原理 a.YUV的计算公式: b.动态保护范围: 2.源代码 源代码为老师发的代码此处略 3.实验结果 a.原rgb: b.转换后yuv: 二.YUV转RGB 1.原理 a.R ...

最新文章

  1. 4104 oracle 数据文件名,Oracle 11g 常遇到ora-01034错误,这是为什么?
  2. 数据挖掘终篇!一文学习模型融合!从加权融合到stacking, boosting
  3. 生成xml_Java操作XML
  4. 推荐NHibernate新书:NHibernate 3.0 CookBook[附下载]
  5. 数据库主键设计之思考
  6. turbolinux mysql 5.0 cluste,Debian -- 新聞 -- Debian GNU/Linux 5.0 發布
  7. 【opencv】8.获取鼠标动作(滑轮滚动,左键按下,右键按下,鼠标移动)并进行相应处理
  8. qt mysql乱码_Qt连接mysql 并且 解决中文乱码问题
  9. mysql批量用trim限定_mybatis中批量更新sql语句,trim、foreach标签,varchar定义理解
  10. 微信:进一步规范财经类自媒体帐号内容发布
  11. 翻车事故频发,原来是开发者漏了这一步!
  12. okhttp教程——起步篇
  13. java郝斌_Java入门学习笔记-郝斌
  14. 单片机毕设选题 - stm32心率脉搏血压体征监测手表(嵌入式 物联网)
  15. FPGA Vivado AXI _DMA IP介绍
  16. 浏览器在百度O2O战略中的位置
  17. tablueau地图标记圆形_高德/百度地图画圆标记
  18. 那些脑残粉请闭嘴好吗,这不是硬科幻
  19. 按住Shift键右击鼠标打开命令行窗口
  20. CouchDB与MongoDB对比

热门文章

  1. 硬盘加密软件测试工资,实测加密软件BitLocker对硬盘性能有何影响
  2. TNF1EGS4 OSN1800全新四路交换式千兆以太网处理板
  3. 手机控制电脑 linux,手机控制电脑 Splashtop远程管理体验
  4. 数据结构:图结构的实现
  5. 刷脸支付将替代传统的聚合收款二维码
  6. Java开发常见英文单词(带音标翻译)
  7. Redis与数据库数据同步解决方案
  8. WPS简历模板的图标怎么修改_指导|让疫情之下的应届生,求职简历脱颖而出
  9. 学习PMBOK对ITTO输入输出的技术工具整理(关系)
  10. 微信小程序 - 点击事件传递参数(简单详细)