我正在制作一个Android应用程序,通过互联网发送预览屏幕的图像。发送YUV映像的字节。我想把这个YUV NV21图像转换成RGB色彩空间。我看了这个链接http://www.41post.com/3470/programming/android-retrieving-the-camera-preview-as-a-pixel-array中的转换函数。并编写了一个python代码。这是python代码。在import numpy as np
from struct import unpack
def nv21torgb(byarray,width,height):
img = np.ndarray(shape=(height,width,3),dtype=np.uint8)
xra = range(height)
yra = range(width)
frameSize = width*height
yp = 0
for j in xra:
uvp = frameSize + (j >> 1)*width
u = 0
v = 0
for i in yra:
y = unpack('B',byarray[yp])[0] - 16
if i & 1 is 0:
v = unpack('B',byarray[uvp])[0] - 128
uvp = uvp + 1
u = unpack('B',byarray[uvp])[0] - 128
uvp = uvp + 1
y1192 = 1192 * y
r = y