首页 > 解决方案 > 在 Python 中使用 OpenCV 编写 HDR 图像的正确方法是什么?

问题描述

我想使用 OpenCV 对现有的 HDR 图像执行算术运算,然后以 .hdr 格式编写 HDR 文件。算术运算对这个问题并不重要,所以假设我想读取一个 .hdr 文件,然后将其写入相同的格式。

我尝试按照通常的方式进行操作,首先将 hdr 文件读取为

img = cv2.imread('original.hdr', -1).astype(np.float32)

然后把它写成

cv2.imwrite('new_original.hdr', img)

我使用 Mac 的 Finder 和OpenHDRViewer来查看 HDR 图像。当我运行上述代码时,Mac finder 能够正确显示该new_original.hdr文件。但是当我尝试使用 OpenHDRViewer 查看相同的 hdr 图像时,它会给出一个错误消息 -

不支持此文件类型!该站点目前尚不支持色调映射或 LDR 图像。稍后再回来查看更新。

不是new_original.hdr有效的 HDR 图像吗?

当我使用传统格式cv2.imwrite()编写 HDR 图像时,是否会丢失一些基于格式的信息。这样做的正确方法是什么?

标签: pythonopencvhdr

解决方案


@MukulKhanna 我遇到了同样的问题。但是,通过在 imwrite() 中将扩展名从 .hdr 更改为 .exr 就可以了,我可以在OpenHDRViewer上查看图像。


推荐阅读