PIL не может обработать этот тип данных

Я пытаюсь использовать модуль fft в numpy:

import Image, numpy

i = Image.open('img.png')
a = numpy.asarray(i, numpy.uint8)

b = abs(numpy.fft.rfft2(a))
b = numpy.uint8(b)

j = Image.fromarray(b)
j.save('img2.png')

Однако, когда я пытаюсь преобразовать массив numpy обратно в изображение PIL, я получаю сообщение об ошибке:

TypeError: Cannot handle this data type

Однако массивы a и b, похоже, имеют один и тот же тип данных (uint8) и выполняют Image .fromarray (a) работает нормально. Я заметил, что формы немного отличаются (a.shape = (1840, 3264, 3) vs b.shape = (1840, 3264, 2)).

Я исправлю это и выясню, какие типы данных принимает PIL?

7
задан Cerin 8 October 2011 в 22:32
поделиться