JAVA语言,YUV-I420格式转RGB格式,NV21格式转RGB格式的一种中间过程
前言
在图像处理领域,RGB格式是经常使用的一种格式,比如:Android应用中展示一张Bitmap、人工智能识别领域识别一张图片等等。
RGB格式指的是每个像素点是由RGB组成的,同时它的排列方式是R G B交替出现的:
- RGBRGBRGB…
YUV-I420格式是YUV格式的一种,使用的时候,经常是作为NV21格式转RGB格式的一种中间产物而出现。
JAVA代码
public static int i4202Bytes2RgbBytes(byte[] i420Bytes, byte[] rgbBytes, int width, int height) {int yIndex, uIndex, vIndex;int y, u, v, r, g, b;for (int j = 0; j < height; j++) {for (int i = 0; i < width; i++) {yIndex = j * width + i;uIndex = j / 2 * (width / 2) + i / 2 + (width * height);vIndex = j / 2 * (width / 2) + i / 2 + (width * height)+ ((width / 2) * (height / 2));y = i420Bytes[yIndex] & 0xFF;u = i420Bytes[uIndex] & 0xFF;v = i420Bytes[vIndex] & 0xFF;r = y + ((360 * (v - 128)) >> 8);g = y - (((88 * (u - 128) + 184 * (v - 128))) >> 8);b = y + ((455 * (u - 128)) >> 8);rgbBytes[(j * width + i) * 3]= (byte) (Math.max(Math.min(r, 255), 0));rgbBytes[(j * width + i) * 3 + 1]= (byte) (Math.max(Math.min(g, 255), 0));rgbBytes[(j * width + i) * 3 + 2]= (byte) (Math.max(Math.min(b, 255), 0));}}return 0;
}
觉得有用的话,可以给我点奖励哦!(微信)
JAVA语言,YUV-I420格式转RGB格式,NV21格式转RGB格式的一种中间过程相关推荐
- Java语言基础详细讲解
就像人与人之间交流使用的语言需要遵循一定的语法规则一样,Java语言也离不开特定语法的支持,如基本语法.数据类型.变量.常量.运算符与表达式.类型转换和输入输出等,只不过这些语法要比日常生活中语言的语 ...
- RGB与YUV转换以及存储格式(YIQ)(信号扫描线)(内插补点算法)(紧缩格式(packed formats))(平面格式(planar formats))
文章目录 色彩空间与色彩模型 色彩空间 色彩模型 不同色彩空间的比较 1.RGB(采集与显示) 2. YUV YCbCr的两种常用格式 1)ITU-R BT.601 conversion 2)JPEG ...
- java语言显示运算时间_JAVA语言之ACM日期计算:输入一个日期,格式如:2010 10 24 ,判断这一天是这一年中的第几天...
本文主要向大家介绍了JAVA语言之ACM日期计算:输入一个日期,格式如:2010 10 24 ,判断这一天是这一年中的第几天,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. ACM日期 ...
- OFD文件转换成PDF格式,Java语言实现
OFD文件转换成PDF格式,Java语言实现 我个人的思路大致是这样的.首先在指定路径创建一个文件夹,然后每次要转换的时候都把OFD文件统一放到指定的文件夹内进行转换.这样写代码的时候只需要循环遍历一 ...
- yuv格式转换是那个组织定义的_YUV格式
在前几篇介绍了OpenGL几种2D效果(旋转.平移.缩放.滤镜)后可以看到,GL图像颜色空间是用R.G.B.A,也就是红.绿.蓝 加一个透明度通道来表示的.比如,gl_FragColor 通常在取值的 ...
- java rgb转yuv_总结各种RGB转YUV的转换公式
最近在学习视频的颜色空间转换,由于摄像机拍出来的视频很多都是用YUV格式保存的,而颜色空间的转换必须在RGB颜色模型上才能完成,所以第一步自然就是将YUV颜色模型转成RGB颜色模型.在网上查到了许多的 ...
- Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片、相互转换
Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片.相互转换 目录 numpy中的array格式数据切片与pandas中的dataframe ...
- java打开文件(Windows exe,应用文件exe,以及其他任何格式的文件)
转载自 java打开文件(Windows exe,应用文件exe,以及其他任何格式的文件) 使用java代码打开任何格式的文件 public static void main(String[] a ...
- 在Java里怎将字节数转换为我们可以读懂的格式?
问题:在Java里怎将字节数转换为我们可以读懂的格式? 在Java里怎将字节数转换为我们可以读懂的格式 像1024应该变成"1 Kb",而1024*1024应该变成"1 ...
- java使用poi读取存储excel表格,包括xls和xlsx格式
全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用poi读取存储excel表格,包括xls和xlsx格式. 需要导入的包 poi-3.14.jar poi-ooxml-3.14.jar ...
最新文章
- 中国工业节能减排产业项目盈利模式及投资风险预警报告2021-2027年
- python商务图表_Excel职场商务图表高效制作
- BOM的window对象的属性及其方法
- 利用 pywin32 操作 excel
- Qt编写自定义控件及插件的使用
- [GCC for C]编译选项---IDE掩盖下的天空
- ajax preview,In jQuery, using ajaxSend to preview the url built
- 编写高效的C++程序方法之使用对象池
- eclipse sdk manager无法更新
- 来看看你更适合哪一种Ubuntu
- java 获取保存存储路径配置文件
- java求阶乘不内存溢出_java - Java阶乘GUI - 堆栈内存溢出
- OSPF路由聚合(学习笔记+实验验证)
- TI FMCW毫米波雷达基础(2)——测速原理
- mysql密码和权限配置
- 太阳高度角方位角计算
- cmos电路多余输入端能否悬空_【技术分享】CMOS集成电路中多余输入端为何不能悬空?...
- 李彦宏能否避免今年两大必要性错误?
- vue脚手架 使用npm run dev 遇到的错误问题
- 自助饮品消费系统---------(初学者)