L'enregistrement d'un tableau Numpy comme une image (mode d'emploi)

J'ai trouvé ma réponse dans un post précédent: L'enregistrement d'un tableau Numpy comme une image. Le seul problème, il n'y a pas beaucoup d'instruction sur l'utilisation de la PyPNG module.

Il y a seulement quelques exemples en ligne--
http://packages.python.org/pypng/ex.html#numpy
http://nullege.com/codes/search/png.Writer.write

Mais que dois-je faire à la lumière de l' .les erreurs d'écriture comme ceci:

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

Voici où l'erreur se produit dans mon code, PCA_tool.py (L'erreur vient après "le dossier.écrire(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)

Je suis en train d'enregistrer un 8400 élément de numpy.ndarray en tant que n=80 colonnes, m=105 ligne en niveaux de gris image png.

Merci,

PIL, pour tous les problèmes, au moins le plus largement utilisé, et donc un peu mieux pris en charge. pythonware.com/products/pil Vous seriez probablement mieux de faire toute la mise à l'échelle de besoin (par exemple de redimensionner et de convertir uint8) et puis Image.fromarray(data).save('whatever.png')
Je dois dire, PrincipalComponent est de numpy.ndarray type et non une liste. Je peux redimensionner le tableau à l'aide de PrincipalComponent.remodeler(ligne,col), mais la conversion de numpy.ndarray dans une écriture du fichier image?
C'est (un numpy.ndarray) ce Image.fromarray s'attend, pour ce que ça vaut.

OriginalL'auteur Alvin | 2011-08-02