Python读取YUV

来源:互联网 发布:如何在淘宝上 编辑:程序博客网 时间:2024/05/02 01:31
# -*- coding: utf-8 -*-"""Created on Thu Jan 10 10:48:00 2013@author: Chen Ming"""from numpy import *import Image screenLevels = 255.0         def yuv_import(filename,dims,numfrm,startfrm):    fp=open(filename,'rb')    blk_size = prod(dims) *3/2    fp.seek(blk_size*startfrm,0)    Y=[]    U=[]    V=[]    print dims[0]    print dims[1]    d00=dims[0]//2    d01=dims[1]//2    print d00    print d01    Yt=zeros((dims[0],dims[1]),uint8,'C')    Ut=zeros((d00,d01),uint8,'C')    Vt=zeros((d00,d01),uint8,'C')    for i in range(numfrm):        for m in range(dims[0]):            for n in range(dims[1]):                #print m,n                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=Y+[Yt]        U=U+[Ut]        V=V+[Vt]    fp.close()    return (Y,U,V)if __name__ == '__main__':    data=yuv_import('E:\\new\\test\\ballroom\\ballroom_0.yuv',(480,640),1,0)    #print data    #im=array2image(array(data[0][0]))    YY=data[0][0]    print YY.shape    for m in range(2):        print m,': ', YY[m,:]    im=Image.fromstring('L',(640,480),YY.tostring())    im.show()    im.save('f:\\a.jpg')


Python,使用PIL模块。读取YUV文件,再转为array,再转为图像并显示、保存。

 

原创粉丝点击