测试文件(yuv后缀的文件不能上传,改为txt后缀)
    test.txt

    1. import cv2
    2. import numpy as np
    3. def yuv_import(filename,dims,numfrm,startfrm):
    4. fp=open(filename,'rb')
    5. blk_size = np.prod(dims) *3/2
    6. fp.seek(int(blk_size*startfrm),0)
    7. Y=[]
    8. U=[]
    9. V=[]
    10. d00=dims[0]//2
    11. d01=dims[1]//2
    12. for _ in range(numfrm):
    13. Yt=np.zeros((dims[0],dims[1]),np.uint8,'C')
    14. Ut=np.zeros((d00,d01),np.uint8,'C')
    15. Vt=np.zeros((d00,d01),np.uint8,'C')
    16. for m in range(dims[0]):
    17. for n in range(dims[1]):
    18. Yt[m,n]=ord(fp.read(1))
    19. for m in range(d00):
    20. for n in range(d01):
    21. Ut[m,n]=ord(fp.read(1))
    22. for m in range(d00):
    23. for n in range(d01):
    24. Vt[m,n]=ord(fp.read(1))
    25. Y.append(Yt)
    26. U=U+[Ut]
    27. V=V+[Vt]
    28. fp.close()
    29. return (Y,U,V)
    30. if __name__ == '__main__':
    31. width=128
    32. height=128
    33. frame_num = 150
    34. data=yuv_import('E:\\linux_share\\out.yuv',(height,width),frame_num,0)
    35. YY=data[0]
    36. for i in range(frame_num):
    37. cv2.imshow("sohow",YY[i])
    38. cv2.waitKey(30)