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=


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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • json格式的字符串是什么类型的_输入字符串的格式要求

    json格式的字符串是什么类型的_输入字符串的格式要求1.JSON数值({“key”:value}){“key”:520,”key1″:1314}2.JSON字符串({“key”:“value”}){“key”:”我爱你”,”key1″:”一生一世”}3.JSON数组({“key”:[value]}){“key”:[520,1314],”key1″:[520,3344]}4.JSON对象({“key”:{value}}

    2022年4月19日
  • 大数据架构之– Lambda架构「建议收藏」

    大数据架构之– Lambda架构「建议收藏」一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数据时,同时发挥流处理和批处理的优势。通过批处理提供全面、准确的数据,通过流处理提供低延迟的数据,从而达到平衡延迟、吞吐量和容错性的目的。为了满足下游的即席查询,批处理和流处理的结果会进行合并。二、Lambda架构组成Lambda架构包含三层,BatchLayer、SpeedLayer和ServingLayer。架.

    2022年6月25日
  • WPF 控件专题 WrapPanel 控件详解「建议收藏」

    WPF 控件专题 WrapPanel 控件详解「建议收藏」WPF控件专题WrapPanel控件详解

    2022年7月23日
  • 插件8:拼写检查

    插件8:拼写检查&lt;?php//Plug-in8:SpellCheck//Thisisanexecutableexamplewithadditionalcodesupplie

    2022年4月29日
  • 汇编语言—移位指令

    汇编语言—移位指令移位指令是一组经常使用的指令,包括:算数移位、逻辑移位、双精度移位、循环移位、带进位的循环移位;移位指令都有一个指定需要移动的二进制位数的操作数,该操作数可以是立即数,也可以是CL的值;在8086中,该操作数只能是1,但是在其后的CPU中,该立即数可以是定义域[1,31]之内的数;一、算数移位指令:算数移位指令分为:算数左移SAL(ShiftAlgebraicLeft)和算数右移S

    2022年5月29日
  • String、StringBuffer与StringBuilder之间区别

    String、StringBuffer与StringBuilder之间区别String StringBuffer StringBuilder String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量优先的内存空间 StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。每个StringBuffer对象都有一定的缓冲区…

    2022年6月28日

发表回复

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

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