PIL kann Nicht mit Diesen Daten Typ
Ich versuche, die Verwendung der fft-Modul 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')
Jedoch, wenn ich versuche, und konvertieren Sie den numpy-array zurück in eine PIL-image bekomme ich den Fehler:
TypeError: Cannot handle this data type
Allerdings sowohl a und b arrays angezeigt, auf den gleichen Daten-Typ (uint8), und dabei Image.fromarray(a)
gut läuft. Ich merke die Formen sind etwas anders (ein.Form = (1840, 3264, 3) vs.b.Form = (1840, 3264, 2)).
Tue ich dieses Problem beheben und finden Sie heraus, welche Datentypen PIL akzeptiert?
InformationsquelleAutor Cerin | 2011-10-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, dass vielleicht die
rfft2
durchgeführt wird, über die falsche Achse.Standardmäßig verwendet es die letzten zwei Achsen:
axes=(-2,-1)
. Die Dritte Achse stellt die RGB-Kanäle. Stattdessen scheint es eher plausibel, dass man möchte durchführen einer FFT über die räumliche Achsenaxes=(0,1)
:InformationsquelleAutor unutbu