0
我发现通过以下两种方式来创建图像的自定义颜色:阵列图像在Python与
使用PIL
from PIL import Image
import numpy as np
data = np.arange(1 * 2048).reshape(1, 2048)
print(data)
img = Image.fromarray(data, 'RGB')
img.save('my.png')
使用Matplotlib
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np
plt.imsave('filename.png', np.arange(1 * 2048).reshape(1, 2048))
他们两者都很好。但是,我无法使用任何一种方法来跟踪我的数据格式。
我的阵列是二维阵列,其是32x1000
。
每个元素为0至255。
我希望每个元件被绘制成与返回为下述方法的结果的RGB颜色的像素的数目。
def get_rgb_by_int(rgb_int):
return rgb_int & 255, (rgb_int >> 8) & 255, (rgb_int >> 16) & 255
从本质上讲,我想知道是否有使用相同的阵列,其中现在的每个元素是另一组,它代表[r,g,b]
而非int
以创建图像的方法。
编辑 打电话得知:这是我有:
print(result.shape)
>> (32, 1000)
print(result[0])
>> [(7, 0, 0)...(13, 0, 0)]
我想生成为1000宽32高的图像。第一像素应该是RGB值(7, 0, 0)
和第一行的最后一个像素应该是(13, 0, 0)
。 result
中的每个元素表示一行。
你'A'是我,但嵌套在另一个阵列。 'len(A)'总是32.我该如何重塑它? 基本上我有'B = [A,A,...,A]' – Cripto
你需要做的'B = np.array(B)''现在是B'您的数组,你可以重塑。在我上面的例子中做“A.shape”应该告诉你尺寸是多少。在将'B'改为一个numpy数组后,执行'B.shape'会显示出你的形状是正确的。 'len()'不会告诉你有关数组的其他维度的任何信息。 – mprat