Numpy y PGM de 16 bits
¿Cuál es una forma eficiente y clara de leer imágenes PGM de 16 bits en Python con numpy?
No puedo usar PIL para cargar imágenes PGM de 16 bits debido a un error PIL. Puedo leer en el encabezado con el siguiente código:
dt = np.dtype([('type', 'a2'),
('space_0', 'a1', ),
('x', 'a3', ),
('space_1', 'a1', ),
('y', 'a3', ),
('space_2', 'a1', ),
('maxval', 'a5')])
header = np.fromfile( 'img.pgm', dtype=dt )
print header
Esto imprime los datos correctos:('P5', ' ', '640', ' ', '480', ' ', '65535')
Pero tengo la sensación de que no es la mejor manera. Y más allá de eso, tengo problemas para descubrir cómo leer los siguientes datos de x por y (en este caso 640x480) por 16 bits con el desplazamiento desize(header)
.
EDIT: IMAGEN AGREGADA
l código de @MATLAB para leer y mostrar la imagen es:
I = imread('foo.pgm');
imagesc(I);
Y se ve así: