You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Matplotlib中jet色图渲染的矩阵转换为RGB矩阵?

获取Matplotlib Jet色图对应的RGB矩阵

要得到和plt.imshow(arr, cmap="jet")完全一致的RGB矩阵,你可以直接利用Matplotlib的色图对象完成数值到RGB的映射,步骤如下:

  • 获取Jet色图实例,对齐imshow的默认归一化逻辑(将数组最小/最大值映射到色图两端)
  • 将原数组传入色图对象得到RGBA结果,剔除Alpha通道后得到RGB矩阵
  • 按需转换为0-255的整数格式(符合图像存储的常见标准)

完整代码示例:

import numpy as np
import matplotlib.cm as cm

# 原输入数组
arr = np.array([[4,5,12,3], [2,4,5,4], [1,3,5,7], [3,9,10,12], [17,1,9,22]])

# 获取jet色图对象
jet_cmap = cm.get_cmap('jet')

# 归一化数组到[0,1]范围(和imshow默认行为一致)
norm_arr = (arr - arr.min()) / (arr.max() - arr.min())

# 映射为RGBA格式,取前3个通道得到RGB(值为0-1的浮点数)
rgb_float = jet_cmap(norm_arr)[:, :, :3]

# 可选:转换为0-255的8位整数格式
rgb_int = (rgb_float * 255).astype(np.uint8)

print("RGB浮点数矩阵形状:", rgb_float.shape)  # 输出 (5,4,3)
print("RGB整数矩阵形状:", rgb_int.shape)      # 输出 (5,4,3)

关键说明

  • cm.get_cmap('jet')确保使用和imshow完全一致的色图
  • 手动归一化是为了对齐imshow默认的vmin=arr.min(), vmax=arr.max()逻辑
  • 若不需要整数格式,直接使用rgb_float即可,其RGB值与Matplotlib渲染的图像完全对应

内容的提问来源于stack exchange,提问作者Ludovic Gardy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 06:20:22