YUV的原始数据文件转rgb使用cv2显示
import numpy as np
import cv2
import os
w=352
h=240
yuv_file = open('123.bin', 'rb')
frame_len = w * h * 3/2
raw = yuv_file.read(int(frame_len))
yuv = np.frombuffer(raw, dtype=np.uint8)
print(yuv.shape)
y=yuv[:w*h].reshape(h,w)
cv2.imshow("YUV2aBGR", y)
uv=yuv[w*h:].reshape(h//2,w//2,2)
uv=cv2.resize(uv,(w,h))
a=np.ones([h,w,3],dtype=np.uint8)
a[...,0]=y
a[...,1:]=uv[...,::-1]
bgr = cv2.cvtColor(a, cv2.COLOR_YUV2BGR)
# yuv = yuv.reshape(shape1)
# cv2.imshow("raw yuv", yuv)
# cv2.waitKey(0)
# yuv = yuv.reshape(shape2)
# bgr = cv2.cvtColor(yuv, cv2.COLOR_YUV2BGR_YUYV)
cv2.imshow("YUV2BGR", bgr)
cv2.waitKey(0)