Lesen von 16-bit-PNG-Bild-Datei mit Python

Ich versuche zu Lesen ein PNG-Bild-Datei geschrieben, die in 16-bit-Datentyp. Die Daten sollten umgewandelt werden in ein NumPy-array. Aber ich habe keine Ahnung, wie die Datei zu Lesen, in '16-bit'. Ich habe versucht, mit PIL und SciPy, aber Sie konvertiert die 16-bit-Daten in 8-bit, wenn Sie es laden. Könnte jemand bitte lassen Sie mich wissen, wie Daten aus einem 16-bit-PNG-Datei und wandelt es in ein NumPy-array ohne ändern der Datentyp?

Im folgenden ist der script, das ich verwendet.

from scipy import misc
import numpy as np
from PIL import Image
#make a png file    
a = np.zeros((1304,960), dtype=np.uint16)
a[:] = np.arange(960)
misc.imsave('16bit.png',a)

#read the png file using scipy
b = misc.imread('16bit.png')
print "scipy:" ,b.dtype

#read the png file using PIL
c = Image.open('16bit.png')   
d = np.array(c)
print "PIL:", d.dtype

InformationsquelleAutor Nownuri | 2015-09-17

Schreibe einen Kommentar