Python讀取YUV檔案,並顯示的方法

2022-10-04 08:45:13 字數 1650 閱讀 1507

python讀取yuv格式檔案,並使用opencv顯示的方法

opencv可以讀取的型別比較多,但大多是比較常見的型別,比如".jpg"和".png",但它不能直接讀取yuv格式的檔案,需要通過python讀取yuv檔案,並進行相應的轉換後,才能被opencv讀取,並進行後續相應的處理.

話不多說,直接上程式。

import cv2

from numpy import *

import image

screenlevels = 255.0

def yuv_import(filename,dims,numfrm,sta

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((d0'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__':

width=1280

height=720

data=yuv_import('test.yuv',(height,width),1,0)

yy=datwww.cppcns.coma[0][0]

cv2.imshow("sohow",yy)

cv2.waitkey(0)

如果yuv檔案需要轉換為pil的image格式,那麼只需在main函式中,進行稍微的處理。

yy=data[0][0]

im=image.frombytes('l',(720,1280),yy.tostring())

另外,如果pil的image想轉換為opencv的mat格式,只需將pil轉換為矩陣的形式。

im_array = np.a程式設計客棧rray(im)

# 也可以用 np程式設計客棧.asarray(im) 區別是 np.array() 是深拷貝,np.asarray() 是淺拷貝

本文標題: python讀取yuv檔案,並顯示的方法

本文位址:

Python讀取YUV檔案,並顯示

opencv可以讀取的型別比較多,但大多是比較常見的型別,比如 jpg 和 png 但它不能直接讀取yuv格式的檔案,需要通過python讀取yuv檔案,並進行相應的轉換後,才能被opencv讀取,並進行後續相應的處理.話不多說,直接上程式.import cv2 from numpy import ...

Python連線MySQL資料庫並讀取顯示資料

建立名為 test 的資料庫 db pymysql.connect host localhost user root passwd your password port 3306 cursor db.cursor 建立游標 cursor.execute create database test de...

Python 讀取檔案並分詞 檔案寫入

1 讀檔案 fr open file.txt for line in fr.readlines line line.strip listfromline line.split 簡單點寫 for line in open file.txt readlines listfromline line.str...