测试文件(yuv后缀的文件不能上传,改为txt后缀)
test.txt
import cv2
import numpy as np
def yuv_import(filename,dims,numfrm,startfrm):
fp=open(filename,'rb')
blk_size = np.prod(dims) *3/2
fp.seek(int(blk_size*startfrm),0)
Y=[]
U=[]
V=[]
d00=dims[0]//2
d01=dims[1]//2
for _ in range(numfrm):
Yt=np.zeros((dims[0],dims[1]),np.uint8,'C')
Ut=np.zeros((d00,d01),np.uint8,'C')
Vt=np.zeros((d00,d01),np.uint8,'C')
for m in range(dims[0]):
for n in range(dims[1]):
Yt[m,n]=ord(fp.read(1))
for m in range(d00):
for n in range(d01):
Ut[m,n]=ord(fp.read(1))
for m in range(d00):
for n in range(d01):
Vt[m,n]=ord(fp.read(1))
Y.append(Yt)
U=U+[Ut]
V=V+[Vt]
fp.close()
return (Y,U,V)
if __name__ == '__main__':
width=128
height=128
frame_num = 150
data=yuv_import('E:\\linux_share\\out.yuv',(height,width),frame_num,0)
YY=data[0]
for i in range(frame_num):
cv2.imshow("sohow",YY[i])
cv2.waitKey(30)