首页 > 解决方案 > 如何使用正确的 MIME 类型和 sRGB 颜色配置文件将 numpy.ndarray 保存为 cv2 或 PIL 中的图像?

问题描述

我正在尝试将 a 保存numpy.ndarray为图像。它似乎有效,但是当我在 Chrome 中转到“在新选项卡中打开图像”时,Chrome 会下载图像而不是在新选项卡中显示它。

我的搜索最初让我相信这是一个 MIME 类型问题,但是我看过的所有检查员都说它的 MIME 类型为image/jpeg. 也许这只是从文件扩展名中推断出来的——我不知道如何检查。

我试过同时使用 cv2 和 PIL,结果相同。

Image.fromarray(img).save('/output.jpg', quality=95) # PIL
cv2.imwrite('/output.jpg', img) # cv2

我还可以从元数据检查员那里得知该图像没有颜色配置文件。我可以看到 PIL 有一个选项可以在image.save()方法中设置配置文件,但是我能找到的所有示例都从原始图像中获取配置文件。例如

im.save(filename, 'jpeg', icc_profile=im.info.get('icc_profile'))

就我而言,我是从一个数组构建的,所以我无处可从。

标签: pythonopencvpython-imaging-library

解决方案


推荐阅读