我想使用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图像时,是否存在一些基于格式的信息丢失。正确的方法是什么?
答案 0 :(得分:0)
@MukulKhanna我遇到了同样的问题。但是,通过在imwrite()中将扩展名从.hdr更改为.exr,就可以了,我可以在OpenHDRViewer上查看图像。