c语言yuv图片cb,YUV格式图像基础
1.YUV基础
yuv是一种类似rgb的颜色模型,起源于黑白和彩电的过渡时期。其中Y代表亮度,uv组合起来可以表示色度。yuv信息只有y的信息就足以显示黑白的图片,yuv和YCbCr表示相同的东西,且Cb严格对应U,Cr严格对应V,yuv和rgb可以通过固定公式进行转换。
yuv转rgb:
yuv转rgb
rgb转yuv:
rgb转yuv
yuv主流的采样方式有yuv4:4:4、yuv4:2:2、yuv4:2:0。下图中以黑点表示采样该像素点的Y分量,以空心圆圈表示采用该像素点的UV分量,可以看到这些采样方式是影响uv的采样的,对y都是全部采样。
YUV采样方式
YUV 4:4:4采样,每一个Y对应一组UV分量,图像和rgb占用的字小大小一致,均为pixelsize*3。
YUV 4:2:2采样,每两个Y共用一组UV分量,占用的大小为pixelsize+pixelsize/2+pixelsize/2。
YUV 4:2:0采样,每四个Y共用一组UV分量,占用大小为pixelsize+pixelsize/4+pixelsize/4。
可以看到,yuv格式图像信息可以比rgb格式占用的字节码更少,所以可以用yuv来传输色彩数据,接收到yuv数据后再转换为rgb来显示图像,从而减少了传输图像占用的带宽。
2.常见的YUV格式
yuv衍生出了很多格式,主要是由于其存储方式决定的。
yuv按照存储方式可以分成两个大类:
packed:打包格式是将yuv分量混合存在同一个数组中
planar:平面格式是将yuv三个分量存成三个数组或者两个数组分别存储
packed存储的yuv的存储先后不同,细分为了yuv、yvu、yvyu、uyvy等等。
planar存储的yuv依据数组数量分成了yuv分别三个数组表示的完全平面的,以及y一个数组而uv一个数组的半平面(Semi planar)的两类,而半平面的又可以细分为uv和vu两个存储顺序。
常见的yuv格式列表如下:
I420: YYYYYYYY UU VV =>YUV420P
YV12: YYYYYYYY VV UU =>YUV420P
NV12: YYYYYYYY UVUV =>YUV420SP
NV21: YYYYYYYY VUVU =>YUV420SP //安卓Camera默认格式
3.操作yuv图像
涉及到摄像头帧图像处理的应用经常需要操作Yuv数据帧,例如镜像、加滤镜等。
操作yuv图像可以直接使用google开源的libyuv库,提供了对yuv图像的格式转换、缩放、裁剪、旋转、镜像等操作:谷歌git libyuv,github上有人用其做了简单的安卓版本的demo:安卓libyuvDemo,包含了基础的yuv库的使用逻辑,但是该项目没有同步谷歌libyuv更新。
参考链接:
[安卓libyuvDemo
c语言yuv图片cb,YUV格式图像基础相关推荐
- c语言打开一幅tif格式图像,关于Windows Picture Viewer无法打开部分tif格式图像的问题...
您好,我司为供应链行业,日常工作中需要浏览tif格式图像.windows自带的windows picture viewer支持这种图像格式,能打开多页tif,操作方便,所以我司员工.客户用户都使用这款 ...
- c语言yuv图片cb,RGB、YUV和YCbCr
之前对RGB.YUV和YCbCr一直没有清晰的理解和认识,今天打算做一个小结,结合网上的文章谈谈自己的看法,也希望有机会看到这篇文章的人能指点一二,相互交流,共同进步. 首先要说明,上述的RGB.YU ...
- c语言给图片添加椒盐噪声,图像添加高斯噪声、胡椒噪声、盐噪声和椒盐噪声...
1.盐椒噪声 图像加入椒盐噪声开始,椒盐噪声其实就是使图像的一些随机的像素为黑色(0)或者白色(255): 盐噪声又称白噪声,在图像中添加一些随机的白色像素点(255):胡椒噪声是在图像中添加一些随机 ...
- vs2010用c语言实现数据转换成图片,数据压缩第二次实验报告——用C语言实现bmp to yuv的图片格式转化...
实验目标 实验主要要求将图片格式从BMP到YUV的转化,并生成含有至少五幅图片不少于200帧的图像流. 实验原理 一.BMP图像简介: 典型的BMP图像文件由四部分组成(部分摘自360百科对BMP的定 ...
- 使用C++实现YUV格式图像与RGB格式图像之间相互转换
使用C++实现YUV格式图像与RGB格式图像之间相互转换 一.RGB与YUV转换公式 1.RGB转YUV 1)RGB转换亮度与色差信号公试: 2)归一化为YUV的转化公试为: 2.YUV转RGB 二. ...
- 使用C++实现多张BMP图片转换为YUV动画----附加淡入淡出转场(逐渐变明变暗),及垂直滑像转场(逐行渐变)
使用C++实现多张BMP图片转换为YUV动画----附加淡入淡出转场(逐渐变明变暗),及垂直滑像转场(逐行渐变) 一.BMP图像简介 1.BMP图像是什么? 2.BMP图像文件结构 1)图象文件头 2 ...
- 转:YUV RGB 常见视频格式解析
转: http://www.cnblogs.com/qinjunni/archive/2012/02/23/2364446.html YUV RGB 常见视频格式解析 I420是YUV格式的一种,而Y ...
- 为什么YUV全为0的图像是绿色的
Q: 为什么YUV 全为0 的图像是绿色的 A: 图像中常见的颜色编码有两种方式. 1. YUV - 灰度(亮度) + 色差分量 2. RGB - 红绿蓝 三色分量 通常电视, 视频等都采用yuv编码 ...
- 音视频之渲染yuv图片
音视频之opengl绘制三角形 音视频之opengl渲染图片 音视频之渲染yuv图片 前一篇我们讨论了如何渲染一个普通图片(rgb) 现在我们来讨论如何渲染一个yuv图片. 什么是yuv我们这里有一个 ...
- 初识YUV,实战NV21格式数据转换为Bitmap
初识YUV,实战NV21格式数据转换为Bitmap 一.初识YUV 二.采样方式 2.1.YUV 4:4:4 2.2.YUV 4:2:2 2.2.YUV 4:2:0[重点] 三.存储方式 3.1.pl ...
最新文章
- linux配置服务器心得体会,linux 学习 linux上搭建dhcp服务器
- Linux:ubuntu设置交换分区
- basemap安装_【我是解决安装问题系列_1】Mac python basemap安装
- MFC基于单文档制作吹彩色泡泡程序
- exchange创建邮箱组_Exchange批量创建用户组及启用通讯组邮箱-阿里云开发者社区...
- Ubuntu下pycharm无法输入中文
- MySQL 参数设置
- php 不懂英文symfony2,请问symfony2一些使用心得
- python数据结构与算法 pdf_『python核心编程pdf』数据结构与算法 Python语言描述
- Fiji/ImageJ调整图像的对比度;Fiji/Image查看图像的像素直方图分布
- 针对2020年市面上短信供应商的对比(8家SMS供应商对比)
- 多目标跟踪(Multi-Object-Tracking)入门
- 2种特殊电容:X电容和Y电容,
- 火狐,Firefox浏览器怎么设置主页
- 对异地工作的一些看法
- 使用ale-import-roms导入atari的rom时RuntimeError问题解决办法
- 程序员业务,微信全文搜索技术优化
- 虹科-将人工智能引入电子组装检测
- 在VMware上安装win10
- ajax请求是宏任务还是微任务_微服务编排引擎Cadence简介