博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为什么YUV全为0的图像是绿色的
阅读量:3555 次
发布时间:2019-05-20

本文共 896 字,大约阅读时间需要 2 分钟。

Q: 为什么YUV 全为0 的图像是绿色的

A: 图像中常见的颜色编码有两种方式。

    1. YUV - 灰度(亮度) + 色差分量

    2. RGB - 红绿蓝 三色分量

 

通常电视, 视频等都采用yuv编码方式, 由于人类对灰度/亮度比较敏感,  而对色差分量不是很敏感。

所以通过yuv编码方式,  可以减少U, V 也即Cb, Cr分量的数量。

故yuv编码方式常见有 YUV 4:4:4, 4:2:2, 4:2:0, 4:1:1, 4:0:0

其中4:4:4 就是完全没压缩的。

4:0:0为完全没有色差分量的, 即我们以前的黑白电视^^

其他都是压缩了部分UV色差分量的。

具体格式可参考fourcc等网站。(后续补充详细)

比如

 


关于YUV全0的图像是绿色图像的原因?

需要提下yuv和rgb之间的转换公式。

根据协议/规范不同, 有挺多种转换公式。

可参考

 

我取其中一种试试看...

YUV和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      R = Y + 1.402 (V-128)      G= Y - 0.34414 (U-128) - 0.71414 (V-128)      B= Y + 1.772 (U-128)

将YUV全0带入公式2,

得出

R = 1.402 * (-128) = -126.598

G = -0.34414(-128) - 0.71414(-128) = 44.04992 + 91.40992 = 135.45984

B = 1.772 * (-128) = -126.228

 

ok, 差不多就是R = -126, G = 135, B = -126

其中RGB有取值范围, 都是[0, 255]

所以最后就是R=0, G=135, B=0

查看颜色表...

 

嗯, 是一种深绿色, 和电视和视频种经常会遇到的那种绿色一样!!

 

 

转载地址:http://ppcrj.baihongyu.com/

你可能感兴趣的文章
redis缓存雪崩
查看>>
mysql的事务隔离
查看>>
mvc架构
查看>>
ElasticSearch(0) ES的认识
查看>>
JPA入门
查看>>
JPA关系
查看>>
4.spring注解和生命周期相关的(了解)
查看>>
3.spring 的纯注解配置
查看>>
4.Spring 整合 Junit
查看>>
安装配置 Kali Linux 笔记
查看>>
持久加密U盘安装 Kali Linux 笔记
查看>>
[ 笔 记 ] 主动信息收集_002
查看>>
设计模式学习
查看>>
操作系统学习总结
查看>>
Java JSON字符串与自定义类/基本类型相互转换
查看>>
Java中时间戳和时间格式的转换
查看>>
Dubbo基础知识整理
查看>>
计算机网络知识整理
查看>>
Java基础知识
查看>>
操作系统知识整理
查看>>