Python:exr圖片讀寫

背景

exr圖片是一種開放標準的高動態範圍圖像格式,也算比較常用吧。本文簡單記錄一下,如何用python讀取exr文件。

代碼

  1. 獲取exr圖片的屬性
import OpenEXR

file = OpenEXR.InputFile(image_path)
print(file.header())

該代碼片段能夠獲取exr圖片許多重要的屬性,以下給出了一些例子

{'displayWindow': (0, 0) - (1023, 767),  #圖片的大小
 'pixelAspectRatio': 1.0, 
 'screenWindowWidth': 1.0, 
 'screenWindowCenter': (0.0, 0.0), 
 'channels': {'G': FLOAT (1, 1)},  #圖片中的通道信息,此處是灰度,所以是G;如果是彩色的話,就是RGB,看情況;
 'dataWindow': (0, 0) - (1023, 767), 
 'compression': ZIP_COMPRESSION, 
 'lineOrder': INCREASING_Y}

  1. 讀取圖片並轉成numpy
file = OpenEXR.InputFile(image_path)
pt = Imath.PixelType(Imath.PixelType.FLOAT)
dw = file.header()['dataWindow']
size = (dw.max.x - dw.min.x + 1, dw.max.y - dw.min.y + 1)
# G的來源來自第一個代碼片段,F表示是浮點型
image_np = [Image.frombytes("F", size, file.channel(c, pt)) for c in "G"] 

參考

https://excamera.com/articles/26/doc/index.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章