Я пытаюсь использовать модуль 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) и b.shape = (1840, 3264, 2)).
Я исправлю это и выясню, какие типы данных принимает PIL?