从 numpy 数组转换为 RGB 图像

2024-03-21

我有三个 (241, 241) numpy 数组,我想将它们视为图像的红色、绿色和蓝色分量。

我已经尝试过这个:

import numpy as np
from PIL import Image

arr = np.zeros((len(x), len(z), 3))

arr[:,:,0] = red_arr
arr[:,:,1] = green_arr
arr[:,:,2] = blue_arr

img = Image.fromarray(arr, 'RGB')

img.show()

但生成的图像看起来就像噪声:

谁能告诉我我做错了什么吗?

例如,我的 red_arr 是一个浮点数组,如下所示:


在您的评论中您指定red_arr等是范围为 -4000 到 4000 的数组。

但如果我们看一下它的规格Image.from_array modes http://pillow.readthedocs.io/en/3.1.x/handbook/concepts.html#concept-modes,然后我们看到它需要一个由三个组成的矩阵bytes(值从 0 到 255)。

然而,这本身并不是问题:我们可以执行:

def rescale(arr):
    arr_min = arr.min()
    arr_max = arr.max()
    return (arr - arr_min) / (arr_max - arr_min)

red_arr_b = 255.0 * rescale(red_arr)
green_arr_b = 255.0 * rescale(green_arr)
blue_arr_b = 255.0 * rescale(blue_arr)

arr[:,:,0] = red_arr_b
arr[:,:,1] = green_arr_b
arr[:,:,2] = blue_arr_b

img = Image.fromarray(arr.astype(int), 'RGB')

因此,首先我们将范围重新调整为 0 到 255,然后将该数组提供给 PIL。

我们也可能希望以同样的方式缩放红色、绿色和蓝色。在这种情况下我们可以使用:

def rescale(arr):
    arr_min = arr.min()
    arr_max = arr.max()
    return (arr - arr_min) / (arr_max - arr_min)

arr[:,:,0] = red_arr
arr[:,:,1] = green_arr
arr[:,:,2] = blue_arr

arr = 255.0 * rescale(arr)

img = Image.fromarray(arr.astype(int), 'RGB')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 numpy 数组转换为 RGB 图像 的相关文章

随机推荐

  • 在 JavaFX 中显示字符串/标签

    我需要帮助弄清楚如何在程序中显示文本 以便它可以在我创建的多边形形状的中间显示 停止 我想做的是创建一个停车标志 我已经负责创建和显示该停止标志 所以现在我只需要在 t 中显示 停止 package application public c
  • 在 django-rest 框架中使用原始 SQL?

    我使用 Django 1 8 和带有表和物化视图的 Postgres 9 4 后端 我有一个 80GB 的表 名为spending包含支出项目 每个项目都有一个组织代码和一个区域代码 class Prescription models Mo
  • C++11 中的可变参数模板和多重继承

    我正在努力实现这样的目标 我有一个模板化基类 我想动态继承它 template
  • MSVC 的 open_memstream 的等效项

    我在用打开内存流在我的一个库中 但我想将该库移植到 MSVC 似乎没有可用的等效功能 但是有足够相似的功能吗 What 打开内存流所做的是它需要一个 char 目的地和大小并返回一个您可以写入的 FILE 数据存储在动态分配的缓冲区中 可从
  • 如何在 OS X 中包含 FFI?

    我在构建时遇到问题这个项目 https github com metaeducation ren c启用 FFI 扩展 为了隔离问题 我正在尝试编译这个例子 http www chiark greenend org uk doc libff
  • OSError:图像文件被截断

    当我处理一堆图像时 其中一个图像出现此错误 File home tensorflowpython firstmodel yololoss py line 153 in data generator image box get random
  • ASP.NET MVC - 如何根据登录用户的角色权限隐藏或显示链接/按钮?

    我正在使用 ASP NET MVC4 这是我的用户角色 1 Administrator 2 L1 Admin 3 L2 Admin 管理员组用户有设置权限 用于添加 权限设置 查看日志 错误报告等 如果用户是管理员组的成员 他只能看到与上述
  • Typescript + React/Redux:类型“IntrinsicAttributes”和“IntrinsicClassAttributes”上不存在属性“XXX”

    我正在开发一个使用 Typescript React 和 Redux 全部在 Electron 中运行 的项目 当我将一个基于类的组件包含在另一个组件中并尝试在它们之间传递参数时 我遇到了问题 宽松地说 我的容器组件结构如下 class C
  • 如何使用类型提示指定多个返回类型

    我在 python 中有一个函数 它可以返回一个bool or a list 有没有办法使用类型提示指定返回类型 例如 这是正确的方法吗 def foo id gt list or bool 从文档中 联合型 https docs pyth
  • TSQL 仅显示第一行

    我有以下 SQL 查询 SELECT DISTINCT MyTable1 Date FROM MyTable1 INNER JOIN MyTable2 ON MyTable1 Id MyTable2 Id WHERE Name John O
  • 禁用 jquery 1.6 中的元素

    随着 jQuery 1 6 的发布 对 SO 的建议是普遍开始使用prop http api jquery com prop 你以前用过的地方attr 当我想禁用某个元素时会发生什么 control prop disabled disabl
  • 如何解决查询 ImportRange 错误

    希望能得到一个正确方向的小指点 我绝对不是程序员 但我正在努力学习 QUERY IMPORTRANGE 1ZKw8d7OKX LqnYx 84IHP2fuBo 6rzzZ7TuaQOfCjio Data A2 D7 select Col1
  • 如何在 Vue.js 中实现父孙之间的双向数据绑定

    我遇到了一个问题 我通过 cookie 解决它 但我想在没有 cookie 的情况下解决问题 我有一个名为 app header 的组件 它还有另一个名为 outmodal 的组件 现在 我的第一个 Vue 实例需要组件应用程序标头 var
  • 函数依赖和规范化

    我正在尝试寻找一个很好的资源来研究函数依赖性和规范化 有人知道我应该去哪里吗 我很难区分 FD 属于 1NF 2NF 还是 3NF 我一直在阅读维基百科并使用谷歌搜索来找到好的研究 但找不到任何简单的解释 也许你们也可以分享一下您在生活中是
  • 使用 Sprite Kit 创建水(流体)表面[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我怎样才能创建水面精灵套件 我已经搜索并找到了帮助Cocos2d它使用box2d为水创建物理效果 例如漂浮在水面上的物体以及其部分在水
  • 在 PowerShell 中运行 CMD 命令

    我在运行 PowerShell 命令时遇到了很多问题 它所做的只是运行一个在 CMD 提示窗口中运行的命令 这是命令 C Program Files x86 Microsoft Configuration Manager AdminCons
  • MongoDB 线程安全吗?

    我在 Windows 上运行 MongoDB 我有 1 个或多个线程删除并重新创建集合 Using mongo exe与show collections 命令 我看到多个具有相同名称的集合 远远超过 1 000 个具有相同名称的集合 当我运
  • 什么是 href="#" 以及为什么使用它?

    在许多网站上我看到链接href 这是什么意思 它是干什么用的 关于超链接 锚标签的主要用途 a a 是作为超链接 http www w3 org MarkUp html spec html spec 7 html 这基本上意味着他们会带你去
  • 如何在没有 equals/hashcode 的情况下删除 List 中的重复对象?

    我必须删除列表中重复的对象 它是来自博客对象的列表 如下所示 public class Blog private String title private String author private String url private S
  • 从 numpy 数组转换为 RGB 图像

    我有三个 241 241 numpy 数组 我想将它们视为图像的红色 绿色和蓝色分量 我已经尝试过这个 import numpy as np from PIL import Image arr np zeros len x len z 3