gpt4 book ai didi

python - PIL Image 从 numpy 数组构造奇怪的图像 - 为什么?

转载 作者:太空宇宙 更新时间:2023-11-03 14:16:51 24 4
gpt4 key购买 nike

我想要一种生成红色、绿色或蓝色的小 RGB 正方形图像的方法。它应该会产生纯色 block ,但是 PIL 输出的图像非常奇怪。为什么?

import numpy as np
from PIL import Image

class MakeSquares():
def __init__(self):

self.num_rows = 3
self.num_cols = 3

self.colourmap = {'red': [255, 0, 0],
'green': [0, 255, 0],
'blue': [0, 0, 255]}

def generateExample(self, label):
arr = []
colour = label
colour_array = self.colourmap[colour]
for i in range(0, self.num_rows):
sarr = []
for j in range(0, self.num_cols):
sarr.append(colour_array)
arr.append(sarr)
narr = np.asarray(arr)
return narr

test = MakeSquares()
t = test.generateExample("red")
print t
testimage = Image.fromarray(t, "RGB")
testimage.save("testimage.jpg")

此代码返回以下 numpy 数组:

[[[255   0   0]
[255 0 0]
[255 0 0]]

[[255 0 0]
[255 0 0]
[255 0 0]]

[[255 0 0]
[255 0 0]
[255 0 0]]]

但是它生成和保存的图像全乱了(它应该只有 3x3,所以我将其放大以便您看得更清楚):

scaled up copy of output image

最佳答案

你需要设置数据类型:

narr = np.asarray(arr,dtype=np.uint8)

关于python - PIL Image 从 numpy 数组构造奇怪的图像 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32700610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com