python-2.7 - 读取、处理和显示 .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')
解决方案
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)
- 尺寸:
推荐阅读
- node.js - 尝试从 vscode 调试 heroku nodejs 时出现“套接字挂断”
- sed - 替换文件内容以数字开头)并保留其余的行内容
- python - 如何从浮动列表中包含具有特定条件的列表
- git - 如何推送在另一个分支中修改的更改?
- hyperledger-composer - 如何在 Hyperledger 作曲家的交易中获取调用交易的人的身份?
- java - 如何在java中存储执行操作的时间
- angular - 在 Angular 2/4/5/7 中获取 JSON 对象节点数
- linux - 如何使用 GDB 创建测试脚本
- firebase - 在 StartDate 和 EndDate Firestore 之间
- javascript - React Native 中的文件加密