在Python中使用OpenCV编写HDR图像的正确方法是什么?

时间:2019-04-06 15:06:14

标签: 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图像时,是否存在一些基于格式的信息丢失。正确的方法是什么?

1 个答案:

答案 0 :(得分:0)

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