I would like to read an environment map in *.hdr file format. It seems that very popular libraries doesn't support .hdr file reading, for example, OpenCV, PIL etc.. So how to read a .hdr file into a numpy array?
How to load *.hdr files using python
I found ImageIO very useful. It can handle many image file formats including .hdr images. Here is the list: ImageIO Formats
It can be easily installed using easy_install or pip.
It means that you did not specify the format imageIO should use when reading the file and the auto format detection is coming up with empty. Try running it again with
format='HDR-FI'
as an argument. This will most likely tell you that the FreeImage library is not installed and then it will tell you how to install it. (Spoiler alert: you install it by running imageio.plugins.freeimage.download()
). After that, it should work. –
Ingroup I get that prompt, but am unable to download the library because the SSL certificate fails to verify –
Isar
For some reason when I was trying to load a MRI image in .hdr format using format='HDR-FI'
it was returning Could not load bitmap <path to image>: : RGBE read error
But if you type imageio.show_formats()
it returns a list of formats including "ITK - Insight Segmentation and Registration Toolkit", where it shows that it can handle .hdr images as well.
So my alternative was to use:
pip install itk
hdr_path = "<path to image>"
img = imageio.imread(hdr_path, 'ITK') # returns a tuple
img = np.array(img) # transforms to numpy array
© 2022 - 2024 — McMap. All rights reserved.
ValueError: Could not find a format to read the specified file in mode 'i'
. Do you know what that means or how to solve it? – Goosegog