Imread OpenEXR file

This is correct for EXR-format with high-dynamic range images. EXR has support for color floating-point depths. You just need to normalize the matrices.

import os

os.environ["OPENCV_IO_ENABLE_OPENEXR"] = "1"

import cv2 as cv

exr_neg = cv.imread('-.exr', cv.IMREAD_UNCHANGED)
exr_pos = cv.imread('+.exr', cv.IMREAD_UNCHANGED)
hdr = cv.imread('0005.hdr', cv.IMREAD_UNCHANGED)

cv.namedWindow('exr_neg',
               cv.WINDOW_NORMAL | cv.WINDOW_KEEPRATIO | cv.WINDOW_GUI_EXPANDED)
cv.namedWindow('exr_pos',
               cv.WINDOW_NORMAL | cv.WINDOW_KEEPRATIO | cv.WINDOW_GUI_EXPANDED)
cv.namedWindow('hdr',
               cv.WINDOW_NORMAL | cv.WINDOW_KEEPRATIO | cv.WINDOW_GUI_EXPANDED)

exr_neg = cv.normalize(exr_neg, None, 0, 255, cv.NORM_MINMAX, cv.CV_8U)
exr_pos = cv.normalize(exr_pos, None, 0, 255, cv.NORM_MINMAX, cv.CV_8U)
hdr = cv.normalize(hdr, None, 0, 255, cv.NORM_MINMAX, cv.CV_8U)

print('exr_neg: min {} | max {}'.format(exr_neg.min(), exr_neg.max()))
print('exr_pos: min {} | max {}'.format(exr_pos.min(), exr_pos.max()))
print('hdr: min {} | max {}'.format(hdr.min(), hdr.max()))

cv.imshow('exr_neg', exr_neg)
cv.imshow('exr_pos', exr_pos)
cv.imshow('hdr', hdr)

cv.waitKey(0)
cv.destroyAllWindows()

or

cv.normalize(mat, None, 0, 1, cv.NORM_MINMAX, cv.CV_64F)