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 dannImage.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
), wasImage.fromarray
erwartet, für was es Wert ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie besser dran, mit PIL:
Ein update auf die Antwort ist, um
über https://stackoverflow.com/a/7700789/184085
Wäre es am besten zu verwenden, scipy für Sie.
Vollständige Dokumentation ist hier: https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.misc.imsave.html