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

使用Numpy数组创建白色图像失败,显示为黑色求助

解决Matplotlib显示全白画布却变成黑色的问题

嘿,我来帮你搞定这个小问题!你遇到的情况其实是Matplotlib的imshow默认行为搞的鬼:当你的数组所有值都是255时,imshow会自动根据数组的最小值和最大值调整颜色映射范围。因为此时数组的min和max都是255,颜色映射会被压缩到单个点,结果就显示成了黑色(对应灰度cmap的最低端)。

给你两个简单的解决办法:

方法1:手动指定颜色范围

在调用imshow的时候,明确设置vmin=0和vmax=255,强制Matplotlib使用标准的0-255灰度区间:

import numpy as np
import matplotlib.pyplot as plt

canvas = np.zeros((300, 300), np.uint8)
canvas_1 = 255 - canvas
plt.imshow(canvas_1, cmap='gray', interpolation='none', vmin=0, vmax=255)
plt.xticks([]), plt.yticks([]) # 隐藏坐标轴刻度
plt.show()

方法2:直接创建全白数组

换个更直观的方式生成白色画布,用np.ones创建数组后乘以255,这样就不会触发自动缩放的问题:

import numpy as np
import matplotlib.pyplot as plt

canvas_1 = np.ones((300, 300), np.uint8) * 255
plt.imshow(canvas_1, cmap='gray', interpolation='none')
plt.xticks([]), plt.yticks([])
plt.show()

随便选一种都能正常显示白色画布啦!

内容的提问来源于stack exchange,提问作者Sourjeet Gupta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 00:53:11