I'm attempting to use the fft module in 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')
However, when I try and convert the numpy array back to a PIL image, I get the error:
TypeError: Cannot handle this data type
However, both a and b arrays appear to have the same data type (uint8), and doing Image.fromarray(a)
runs fine. I do notice the shapes are slightly different (a.shape = (1840, 3264, 3) vs b.shape = (1840, 3264, 2)).
I do fix this and find out which data types PIL accepts?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…