3
Я хочу, чтобы метод генерировал небольшие квадратные изображения RGB, красного или зеленого цвета. Он должен создавать сплошные блоки цвета, но изображение, выводимое из PIL, очень странно. Зачем?PIL Image создает странные изображения из массива numpy - почему?
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]]]
Но образ производит и сохраняет это все перепутались (это только должно быть 3х3, так что я масштабируется его так, вы можете лучше видеть):
спасибо, работал как шарм. –
Не беспокойтесь, dtype выводится как 'int64', если вы не передадите его явно –