亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-20 00:26:43 來源:腳本之家 閱讀:474 作者:TiRan_Yang 欄目:開發技術

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,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文件,并顯示的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

申扎县| 博客| 竹山县| 清流县| 涟水县| 巴林右旗| 遂昌县| 镇沅| 双桥区| 蓬安县| 象山县| 玛沁县| 隆昌县| 临清市| 海原县| 佳木斯市| 崇文区| 兴国县| 麻阳| 东至县| 五莲县| 津市市| 陆丰市| 五华县| 驻马店市| 嘉黎县| 青神县| 彭山县| 晴隆县| 乐至县| 长岛县| 郎溪县| 丰宁| 合山市| 新建县| 故城县| 焉耆| 临沭县| 乌拉特前旗| 克拉玛依市| 丹棱县|