类型 | 打包类型 | 内存中实际排布 | python opencv格式 | python numpy 里面顺序 | python转换二进制代码 | 1080P numpy.shape: | RawViewer2.0里面颜色空间类型 |
YUV420P YV12 | plane | YYYYYYYY VV UU | cv2.COLOR_RGB2YUV_YV12 | YYYYYYYYUUVV | img_src_yuv = cv2.cvtColor(img_src, cv2.COLOR_RGB2YUV_YV12) with open('img.yv12', 'wb') as f: for nY in range(0,1080,1): for nX in range(0,1920,1): buffer = struct.pack("B", img_src_yuv[nY][nX]) f.write(buffer) for nY in range(1080 + 270,1080 + 270 + 270,1): for nX in range(0,1920,1): buffer = struct.pack("B", img_src_yuv[nY][nX]) f.write(buffer) for nY in range(1080,1080 + 270,1): for nX in range(0,1920,1): buffer = struct.pack("B", img_src_yuv[nY][nX]) f.write(buffer) | (1620, 1920) | YV12 |
YUV420P I420 | plane | YYYYYYYY UU VV | cv2.COLOR_RGB2YUV_I420 | YYYYYYYYVVUU | img_src_yuv = cv2.cvtColor(img_src, cv2.COLOR_RGB2YUV_I420) with open('img.i420', 'wb') as f: for nY in range(0,1080,1): for nX in range(0,1920,1): buffer = struct.pack("B", img_src_yuv[nY][nX]) f.write(buffer) for nY in range(1080 + 270,1080 + 270 + 270,1): for nX in range(0,1920,1): buffer = struct.pack("B", img_src_yuv[nY][nX]) f.write(buffer) for nY in range(1080,1080 + 270,1): for nX in range(0,1920,1): buffer = struct.pack("B", img_src_yuv[nY][nX]) f.write(buffer) | (1620, 1920) | YUV420 |
YUV | plane | YYYY UUUU VVVV |
cv2.COLOR_RGB2YUV | YUVYUVYUVYUV | img_src_yuv444 = cv2.cvtColor(img_src, cv2.COLOR_RGB2YUV) with open('img.yuv444', 'wb') as f: for nY in range(0,img_src.shape[0],1): for nX in range(0,img_src.shape[1],1): buffer = struct.pack("B", img_src_yuv444[nY][nX][0]) f.write(buffer) for nY in range(0,img_src.shape[0],1): for nX in range(0,img_src.shape[1],1): buffer = struct.pack("B", img_src_yuv444[nY][nX][2]) f.write(buffer) for nY in range(0,img_src.shape[0],1): for nX in range(0,img_src.shape[1],1): buffer = struct.pack("B", img_src_yuv444[nY][nX][1]) f.write(buffer) | (1080, 1920, 3) | YUV444 |
YUV420SP NV12 | YYYYYYYY UVUV | img_src_yuv = cv2.cvtColor(img_src, cv2.COLOR_RGB2YUV_I420) with open('img.nv12', 'wb') as f: for nY in range(0,1080,1): for nX in range(0,1920,1): buffer = struct.pack("B", img_src_yuv[nY][nX]) f.write(buffer) for nY in range(0,270,1): for nX in range(0,1920,1): buffer = struct.pack("B", img_src_yuv[nY + 1080 + 270][nX]) f.write(buffer) buffer = struct.pack("B", img_src_yuv[nY + 1080][nX]) f.write(buffer) | (1620, 1920) | NV12 | |||
YUV420SP NV21 | YYYYYYYY VUVU | img_src_yuv = cv2.cvtColor(img_src, cv2.COLOR_RGB2YUV_YV12) with open('img.nv21', 'wb') as f: for nY in range(0,1080,1): for nX in range(0,1920,1): buffer = struct.pack("B", img_src_yuv[nY][nX]) f.write(buffer) for nY in range(0,270,1): for nX in range(0,1920,1): buffer = struct.pack("B", img_src_yuv[nY + 1080 + 270][nX]) f.write(buffer) buffer = struct.pack("B", img_src_yuv[nY + 1080][nX]) f.write(buffer) | (1620, 1920) | NV21 | |||