¿Cuál es una manera eficiente y clara de leer imágenes PGM de 16 bits en Python con numpy?Numpy y PGM de 16 bits
no puedo usar PIL para cargar imágenes PGM 16 bits due to a PIL bug. 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 exactamente la mejor manera. Y más allá de eso, tengo problemas para averiguar cómo leer en los siguientes datos de x por y (en este caso, 640x480) en 16 bits con el desplazamiento de size(header)
.
EDIT: la imagen Añadido
código MATLAB para leer y mostrar la imagen es:
I = imread('foo.pgm');
imagesc(I);
y se parece a esto:
puede conectar un img.pgm ejemplo? Fuera de tema: revisó su sitio; es posible que le guste ver [esto] (http://www.bbc.co.uk/news/science-environment-14803840): parece que usted no es el único que busca agua más cálida en el Ártico ... (evidencia de apoyo para su (coleages) tesis tal vez?) – Remi
PGM aquí: http://db.tt/phaR587 PD Uno no tiene que buscar mucho para encontrar estas cosas ... :(. – mankoff