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 = [Image.frombytes("F", size, file.channel(c, pt)) for c in "G"] 

参考

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

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值