总结了两种在python中读取.hdr图片的方法
- imageio读取.hdr
import imageioimageio.plugins.freeimage.download()
img = imageio.imread(hdr_path, format='HDR-FI')
- opencv读取
import cv2img = cv2.imread(hdr_path, flags = cv2.IMREAD_ANYDEPTH)
cv2.imshow('1',img)
cv2.waitKey (0)
请注意这里一定要使用cv2.IMREAD_ANYDEPTH,因为hdr图片的像素位宽比普通图片大很多,直接读取的话会被截断,故而读出来的值有误。
显示结果如下所示:
当然这里的图片显示时自动ToneMapping了,但是img中读取的数据还是原先保存的完整数据。