Speichern ein Numpy-array als ein Bild (Anleitung)

Fand ich meine Antwort in einem früheren post: Speichern ein Numpy-array als Bild. Das einzige problem ist, gibt es nicht viel Anleitung, mit der PyPNG Modul.

Es sind nur ein paar Beispiele online ---
http://packages.python.org/pypng/ex.html#numpy
http://nullege.com/codes/search/png.Writer.write

Aber was Mach ich im Licht .Schreibfehler wie diese:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/png.py", line 638, in write
    nrows = self.write_passes(outfile, rows)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/png.py", line 783, in write_passes
    extend(row)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/png.py", line 780, in <lambda>
    return lambda sl: f(map(int, sl))
TypeError: argument 2 to map() must support iteration

Hier ist, wo der Fehler passiert in meinem code PCA_tool.py (Der Fehler kommt nach "Ordner.schreiben(outfilename, PrincipalComponent"):

#PrincipalComponent.save(path+'transform_'+str(each)+'.png', format='PNG')
outfilename = open(str(path)+'transformed/transform_'+str(each)+'.png', 'wb')
folder = png.Writer(m,n,greyscale=True)
folder.write(outfilename, PrincipalComponent)
outfilename.close()

sys.exit(0)

Ich versuche zu sparen, 8400 element numpy.ndarray als n=80-Spalten, m=105 Zeile Graustufen-png-Bild.

Dank,

  • PIL, für alle seine Probleme, ist zumindest weit verbreitet ist, und daher ein wenig besser unterstützt. pythonware.com/products/pil würden Sie wahrscheinlich besser dran, einfach nur tun, jeden Skalierung Bedarf (z.B. skalieren und konvertieren uint8) und dann Image.fromarray(data).save('whatever.png')
  • Ich sollte sagen, PrincipalComponent ist von numpy.Typ ndarray und nicht eine Liste. Ich kann skalieren Sie das array mit PrincipalComponent.reshape(row,col), aber Umwandlung von numpy.ndarray in einem beschreibbaren image-Datei?
  • Das ist (eine numpy.ndarray), was Image.fromarray erwartet, für was es Wert ist.
InformationsquelleAutor Alvin | 2011-08-02
Schreibe einen Kommentar