首页 > 解决方案 > 读取、处理和显示 .EXR 格式图像中的像素

问题描述

我想读取 exr 文件格式的图像并查看相应位置的像素强度。并且还想将它们堆叠在一起,形成一个神经网络。如何对这些格式进行正常的图像处理?请帮我做这件事!

我已经使用 OpenEXR 文件尝试了此代码,但无法继续进行。

import OpenEXR
file = OpenEXR.InputFile('file_name.exr')

我预计会看到普通的图像处理工具,例如

file.size()
file.show()
file.write('another format')
file.min()
file.extract_channels()
file.append('another exr file')

标签: python-2.7opencvimage-processingopenexrhdrimages

解决方案


OpenEXR 似乎缺乏花哨的图像处理功能,例如显示图像或将图像保存为不同的格式。为此,我建议您使用OpenCV充满图像处理功能的 。

您可能需要做的是:

  • 只读exr使用OpenEXR,然后提取通道并将它们转换为 numpy 数组rCh = np.asarray(rCh, dtype=np.uint8)
  • 从这些 numpy 数组创建一个 RGB 图像作为img_rgb = cv2.merge([b, g, r]).
  • 对列出的操作使用 OpenCV 函数:
    • 尺寸:img_rgb.shape
    • 节目:cv2.imshow(img_rgb)
    • 写:cv2.imwrite("path/to/file.jpg", img_rgb)
    • 敏:np.min(b), np.min(g),np.min(r)
    • 提取渠道:b, g, r = cv2.split(img_rgb)

推荐阅读