最小的、独立的OpenEXR阅读器,用于单部件、未压缩的扫描行文件。
minexr的Python项目详细描述
minexr公司
minexr是一个独立的、快速的Python OpenEXR阅读器,用于单个部分、未压缩的扫描行文件。它与Blender生成的.exr
文件兼容。在
假设
minexr对要读取的.exr
文件做了两个假设:
- 具有任意数量通道的单部件文件
- 无像素数据压缩,以及
- 等通道类型(半通道、浮动通道、UINT通道)。在
这些假设允许我们高效地解析和读取.exr
文件。特别是我们获得扫描线之间的恒定偏移量,这使得我们可以在不复制的情况下以(H,C,W)格式读取整个图像。在
使用
以下内容取自example.py
importminexrwithopen('file.exr','rb')asfp:reader=minexr.load(fp)rgba=reader.select(['Color.R','Color.G','Color.B'])# a HxWx3 np.array with dtype based on exr type....
Full example.py加载以下图像
^{1}$ 在
以前是用Blender/EEVEEcube.blend渲染的。在
运行时
以下计时由bench.py通过从.exr
文件中重复读取RGBA图像而产生。计时包括文件和numpy操作。在
Module | [sec/image] | Note |
---|---|---|
OpenEXR 1.3.2 | 0.020 | with channel concatenate |
OpenEXR 1.3.2 | 0.015 | without channel concatenate |
minexr | 0.004 | with channel concatenate |
安装
或者通过pip
^{pr2}$或者克隆此存储库并调用
pip install -e .
测试
运行测试
pytest
- 项目
标签: