python下讀取並展示raw格式的圖片
阿新 • • 發佈:2019-02-09
raw檔案可能有些人沒有,因此,先用一張圖片建立一個raw格式的檔案(其實可以是其他型別的格式檔案)
import numpy as np
import cv2
img = cv2.imread('cat.jpg')
# 這裡需要我們在當前目錄下放一張名為cat.jpg的檔案
img.tofile('cat.raw')
#利用numpy中array的函式tofile將資料寫入檔案
#這時我們發現當前目錄下新增了一個檔案,名為cat.raw
有了raw檔案,我們就可以讀取這個檔案,並顯示出來。
# 我們先確定原圖片的資料格式和大小,通道數,否者無法進行下一步轉換
type = img.dtype#得到資料格式,如uint8 和uint16等
width, height, channels = img.shape# 得到影象大小和通道數
# 利用numpydefromfile函式讀取raw檔案,並指定資料格式
imgData = np.fromfile('cat.raw', dtype=type)
# 利用numpy中array的reshape函式將讀取到的資料進行重新排列。
imgData = imgData.reshape(width, height, channels)
# 展示影象
cv2.imshow('img',imgData)
**# 注意到這個函式只能顯示uint8型別的資料,如果是uint16 的資料請先轉成uint8。否則圖片顯示會出現問題。**
cv2.waitKey()
cv2.destroyAllWindows()
如果已經擁有了raw檔案,就直接運用fromfile讀取資料(可能有些raw檔案有標頭檔案)