`
ming_fanglin
  • 浏览: 224566 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

YUV420转RGB565的转换函数

J# 
阅读更多
 static public void decodeYUV420SP(int[] rgb, byte[] yuv420sp, int width, int height) {
	    	final int frameSize = width * height;
	    	
	    	for (int j = 0, yp = 0; j < height; j++) {
	    		int uvp = frameSize + (j >> 1) * width, u = 0, v = 0;
	    		for (int i = 0; i < width; i++, yp++) {
	    			int y = (0xff & ((int) yuv420sp[yp])) - 16;
	    			if (y < 0) y = 0;
	    			if ((i & 1) == 0) {
	    				v = (0xff & yuv420sp[uvp++]) - 128;
	    				u = (0xff & yuv420sp[uvp++]) - 128;
	    			}
	    			
	    			int y1192 = 1192 * y;
	    			int r = (y1192 + 1634 * v);
	    			int g = (y1192 - 833 * v - 400 * u);
	    			int b = (y1192 + 2066 * u);
	    			
	    			if (r < 0) r = 0; else if (r > 262143) r = 262143;
	    			if (g < 0) g = 0; else if (g > 262143) g = 262143;
	    			if (b < 0) b = 0; else if (b > 262143) b = 262143;
	    			
	    			rgb[yp] = 0xff000000 | ((r << 6) & 0xff0000) | ((g >> 2) & 0xff00) | ((b >> 10) & 0xff);
	    		}
	    	}
	    }
1
0
分享到:
评论

相关推荐

    yuv420转rgb565

    这个方法首先调用`decodeYUV420SPToRGB565`函数将YUV420格式的数据转换为RGB565格式,并将结果保存在一个整型数组中。然后创建一个`Bitmap`对象,并使用`Bitmap.createBitmap`方法将整型数组中的数据转换为位图。...

    YUV420与RGB24转换

    例如,`ConvertYUV2RGB`函数可能会接受一个YUV420的图像缓冲区和目标RGB24的缓冲区,然后执行上述的转换操作。 总之,YUV420和RGB24之间的转换涉及到颜色空间的变换和分辨率调整,这对于视频处理和图像显示至关重要...

    YUV420图像数据转换成RGB888和RGB565位图文件

    将YUV420图像数据转换成RGB888和RGB565位图文件;包含YUV420解码算法;YUV数据到RGB数据的转换算法;生成RGB888位图和RGB565位图的BITMAP文件格式算法;相关算法与函数都有详细的注释信息。

    YUV420转化为RGB图像输出

    接着,调用`yuv420_to_rgb`函数进行转换,并显示转换后的RGB图像。需要注意的是,OpenCV的`imread`函数在读取YUV420文件时可能需要特定的标志来正确处理数据,具体取决于文件格式。 此外,优化也是关键。对于大规模...

    YUV420转RGB24函数

    在深入探讨转换函数之前,我们首先需要了解两种主要的颜色空间模型——YUV和RGB。 - **RGB(红绿蓝)**:这是最常用的颜色模型之一,通过不同强度的红、绿、蓝三种颜色来表示图像中的像素。 - **YUV**:这是一种常...

    linux_c语言_YUV420转RGB888源码

    这篇“Linux C语言_YUV420转RGB888源码”主要涉及的知识点包括C语言编程、图像处理和颜色空间转换。 1. **C语言编程**:C语言是一种基础且高效的编程语言,适用于操作系统、设备驱动程序等底层编程任务。在这个项目...

    YUV420到RGB888的转换类

    这里我们关注的是从YUV420格式转换到RGB888格式的过程。YUV是一种广泛用于视频编码的颜色空间,它将颜色信息分解为亮度(Y)和两个色度分量(U和V),以节省带宽。RGB888则代表每个像素有红绿蓝三个通道,每个通道用...

    YUV420转换成RGB

    ### YUV420到RGB的转换:OpenCV实现 #### 一、基础知识介绍 **YUV**是一种常用于视频编码的颜色模型,其中Y代表亮度(Luminance),U和V是色差信号(Chrominance)。在数字图像处理领域,YUV色彩空间有着广泛的...

    yuv420sp(NV21)转RGB的核心代码以及多线程

    `decodeYUV420SPLine.java`可能包含了按行处理YUV数据的函数,而`decodeYUV420SP.java`可能封装了整个转换过程,包括多线程的实现。 在实际应用中,这个转换过程广泛应用于Android系统,因为Android原生支持NV21...

    RGB24与YUV420格式相互转换

    `yuv2rgb.c` 和 `yuvrgb24.c` 文件很可能是实现这些转换的C语言源代码。它们包含了将YUV420数据转换为RGB24,以及反之的函数实现。在实际应用中,这些源代码可以被集成到视频编解码器中,用于处理输入和输出的视频帧...

    YUV转RGB 的verilog代码

    在数字视频处理领域,颜色空间转换是至关重要的一步,它涉及到不同颜色模型之间的转换,例如从YUV转换到RGB。YUV色彩空间主要用于电视和视频信号传输,因为它能有效地利用带宽,而RGB(红绿蓝)是显示器上常用的色彩...

    rgb24转yuv420高效率 完整代码,C++实现

    总之,`rgb24转yuv420`的C++实现是一个涉及色彩空间转换、内存管理、优化和测试的复杂过程。通过理解和应用上述知识点,可以构建出高效且准确的转换工具。在实际项目中,这样的工具对于视频处理和编码具有重要的作用...

    rgb转yuv420源代码(C语言)

    RGB到YUV420的转换是图像处理领域常见的颜色空间转换操作,广泛应用于视频编码、解码以及图像处理系统中。在C语言中实现这个转换涉及到对像素数据的逐个处理,通常包括数学计算和内存操作。下面将详细介绍这个过程。...

    yuv和rgb相互转换函数及使用

    1. YUV到RGB转换: 要将YUV数据转换为RGB,我们可以使用以下公式: ``` R = Y + 1.13983 * V G = Y - 0.39465 * U - 0.58060 * V B = Y + 2.03211 * U ``` 其中,Y、U和V分别代表YUV中的亮度和色度分量,R...

    python实现yuv转RGB图片程序

    为了实现这个转换,你需要创建一个函数,接受YUV图像数据,然后使用上述公式计算出对应的RGB值。这可以通过遍历YUV数组的每个元素并执行转换来完成。最后,你可以使用PIL或numpy的保存函数将结果写入新的RGB图像文件...

    YUV420P转RGB32以及旋转处理

    3. 对于每个像素,如果新坐标位于目标图像的边界内,执行YUV到RGB转换,并将结果写入目标图像的对应位置。 4. 对于U和V分量,由于它们的分辨率是Y的一半,需要进行双线性插值来获取旋转后的新位置的U和V值。 在提供...

    RGB2YUV.rar_bmp yuv_mmx_rgb yuv420_rgb2yuv_rgb2yuv mmx

    其中,“yuv_mmx_rgb”指的是使用MMX实现的YUV与RGB之间的转换,“yuv420_rgb2yuv”表示YUV420格式的转换,而“rgb2yuv_mmx”则是MMX优化的RGB到YUV转换函数。 描述中提到,这个程序通过MMX指令集实现了宽位处理,...

    opencl GPU加速rgb24与yuv444p格式相互转换核函数参考

    本话题主要探讨如何使用OpenCL实现RGB24到YUV444P以及YUV444P到RGB24的转换,并关注GPU加速的核函数设计。 RGB24和YUV444P是两种常见的颜色空间。RGB24使用三个8位通道(红色、绿色和蓝色)来表示像素,总共24位。...

    RGB888转NV21(yuv420sp)源代码详解

    在RGB888到NV21的转换过程中,首先需要将RGB像素数据转换为YUV格式。转换公式如下: - Y = 0.299R + 0.587G + 0.114B - U = -0.169R - 0.331G + 0.5B + 128 - V = 0.5R - 0.419G - 0.081B + 128 这里的R、G、B分别...

    YUV-RGB.rar_RGB YUV_RGB YUV_RGB-gt;YUV_yuv to rgb_yuvrgb转换dsp

    5. **yuvrgb转换**:这可能指的是一个特定的函数或库,用于执行YUV到RGB的转换。 压缩包中的文件"YUV-RGB"可能是实现这一转换的源代码、样本数据或转换工具,供开发者或研究人员使用。 综上所述,了解YUV到RGB的...

Global site tag (gtag.js) - Google Analytics