Skip to main content
 首页 » 编程设计

python之图像的 RGB 立方体

2025年05月04日10TianFang

我正在尝试在 python 中使用 matplotlib 创建图像的 RGB 立方体。我有一个 python 列表,其中所有像素的 RGB 格式为 [(2,152,255),(0,0,0)...]。我用散点函数绘制了所有点,但我不知道如何用各自的 RGB 颜色绘制每个 RGB 点。

我试过像这样 ax.scatter(paleta[0],paleta[1],paleta[2],c = RGBlist),但该函数需要一个 RGBa 值。 ..

我期待这样的结果:

代码:

paleta=zip(*RGBlist) fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.scatter(paleta[0],paleta[1],paleta[2]) ax.grid(False) ax.set_title('grid on') plt.savefig('Images\\RGBcube.png')

请您参考如下方法:

尝试将 RGB 值缩放到 [0,1] 范围内:

ax.scatter(paleta[0],paleta[1],paleta[2], c=[(r[0]/255., r[1]/255., r[2]/255.) 对于 RGBlist 中的 r])

这适用于以下示例:

import random 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import axes3d, Axes3D 
 
RGBlist = [(random.randint(0,255), random.randint(0,255), random.randint(0,255)) for i in range(100)] 
paleta=zip(*RGBlist) 
fig = plt.figure() 
ax = Axes3D(fig) 
ax.scatter(paleta[0],paleta[1],paleta[2], c=[(r[0] / 255., r[1] / 255., r[2] / 255.) for r in RGBlist]) 
ax.grid(False) 
ax.set_title('grid on') 
plt.savefig('blah.png') 

给出输出: