国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python讀取YUV文件,并顯示的方法

2020-01-04 13:55:59
字體:
來源:轉載
供稿:網友

Python讀取YUV格式文件,并使用opencv顯示的方法

opencv可以讀取的圖片類型比較多,但大多是比較常見的類型,比如".jpg"和".png",但它不能直接讀取YUV格式的文件,需要通過python讀取YUV文件,并進行相應的轉換后,才能被opencv讀取,并進行后續相應的處理.

話不多說,直接上程序。

import cv2from 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__': width=1280 height=720 data=yuv_import('test.yuv',(height,width),1,0)  YY=data[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.array(im)# 也可以用 np.asarray(im) 區別是 np.array() 是深拷貝,np.asarray() 是淺拷貝

以上這篇Python讀取YUV文件,并顯示的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 抚顺县| 郎溪县| 潍坊市| 南开区| 邢台市| 沙雅县| 巢湖市| 即墨市| 四子王旗| 扎囊县| 固镇县| 柘荣县| 嘉鱼县| 靖西县| 图们市| 偃师市| 凤翔县| 湟源县| 霍山县| 巴中市| 铁岭县| 军事| 安溪县| 资源县| 陆河县| 岑溪市| 沾益县| 天峻县| 青海省| 上思县| 绥棱县| 博客| 綦江县| 永平县| 和平县| 新平| 丹棱县| 尼玛县| 延川县| 涿州市| 广平县|