nv12转rgb「建议收藏」

nv12转rgb「建议收藏」nv12格式nv12转rgb两种格式代码voidNV12_T_RGB(unsignedintwidth,unsignedintheight,unsignedchar*Y,unsignedchar*UV,unsignedchar*rgb){ intr,g,b; inty,u,v; for(inti=0;i<height;i++){ for(intj=0;j<width;j++){ y=

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

nv12 格式

nv12 转 rgb 两种格式

代码

void NV12_T_RGB(unsigned int width, unsigned int height, unsigned char* Y, unsigned char* UV, unsigned char* rgb)
{ 
   
	int r, g, b;
	int y, u, v;
	for (int i = 0; i < height; i++) { 
   
		for (int j = 0; j < width; j++) { 
   
			y = Y[i * width + j];
			u = UV[(i / 2 * width + j / 2 * 2)];
			v = UV[(i / 2 * width + j / 2 * 2) + 1];
			// TRACE("yuv(%d, %d, %d)\n", i * width + j, (i / 2 * width + j / 2 * 2), (i / 2 * width + j / 2 * 2) + 1);
			r = y + 1.4075 * (v-128);  //r
			g = y - 0.344 * (u-128) - 0.714 * (v-128); //g
			b = y + 1.770 * (u-128); //b

			if (r > 255)   r = 255;
			if (g > 255)   g = 255;
			if (b > 255)   b = 255;
			if (r < 0)     r = 0;
			if (g < 0)     g = 0;
			if (b < 0)     b = 0;

			rgb[(i * width + j) * 3 + 0] = (unsigned char)r;
			rgb[(i * width + j) * 3 + 1] = (unsigned char)g;
			rgb[(i * width + j) * 3 + 2] = (unsigned char)b;
		}
	}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189778.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • javaSocket传输模式

    javaSocket传输模式Sockets有两种主要的操作方式:面向连接的和无连接的.面向连接的sockets操作就像一部电话,他们必须建立一个连接和一人呼叫.所有的事情在到达时的顺序与它们出发时的顺序时一样.无连接的sockets操作就像是一个邮件投递,,没有什么保证,多个邮件可能在到达时的顺序与出发时的顺序不一样.到底用哪种模式是邮应用程序的需要决定的.如果可靠性更重要的话,用面向连接的操作会好一些.比如文件服务器需要他们

    2022年6月24日
    22
  • VBoxManage

    VBoxManageVBoxManage[-v|-version]        显示virtualbox的版本号VBoxManage-nologo              隐藏logoVBoxManage-convertSettings     允许自动转换设置文件VBoxManage-convertSettingsBackup 允许自动转换设置文件,并在转换前作备份VBoxMan

    2022年4月27日
    53
  • 成年人最大的悲哀,就是突然读懂了鲁迅

    原文始发于微信公众号():成年人最大的悲哀,就是突然读懂了鲁迅

    2021年6月21日
    95
  • linux 查看当前所有环境变量的两种方法_查看环境变量的命令

    linux 查看当前所有环境变量的两种方法_查看环境变量的命令原文From: http://os.51cto.com/art/201005/202463.htm 系统的环境变量在配置webserver以及编写程序都常常被用到,因此了解必要的关于系统变量的知识是非常有必要的,下面关于linux系统变量的查看以及方法。在Windows下,查看环境变量的命令是:set,这个命令会输出系统当前的环境变量。Linux下Linux查看环境变量准确…

    2022年10月1日
    0
  • 全网最全关于selenium webdriver 8大元素定位详解

    全网最全关于selenium webdriver 8大元素定位详解

    2021年5月24日
    163
  • MATLAB 矢量图(风场、电场等)标明矢量大小的方法——箭头比例尺及风矢杆图的绘制

    MATLAB 矢量图(风场、电场等)标明矢量大小的方法——箭头比例尺及风矢杆图的绘制作者:中国科学院大气物理研究所律成林MATLAB中标明矢量图中矢量大小的方法:绘制箭头比例尺,或绘制风矢杆图。m_vec函数绘制的箭头长度仅与矢量大小本身有关。本人基于m_vec绘制结果,开发了一个可以在Figure内任意位置为指定的矢量图绘制箭头比例尺的函数——m_arrow_scale2,本文已包含该函数的代码,该函数考虑了方方面面,如文本标注、位置、字体等参数,且预设了很多参数供使用者选择,选择余地非常多,使用起来非常方便,功能也较为强大。本着“授人以渔”的原则,倾注了本人对MATLAB深刻理解。

    2022年6月28日
    116

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号