PGM irregular e de 16 bits
O que é uma maneira eficiente e clara de ler imagens PGM de 16 bits em Python com numpy?
Não consigo usar o PIL para carregar imagens PGM de 16 bitsevido a um bug do P. Eu posso ler no cabeçalho com o seguinte 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
Isso imprime os dados corretos:('P5', ' ', '640', ' ', '480', ' ', '65535')
Mas sinto que não é o melhor caminho. Além disso, estou tendo problemas para descobrir como ler os seguintes dados de x por y (neste caso, 640x480) por 16 bits com o deslocamento desize(header)
.
EDIT: IMAGEM ADICIONADA
código @MATLAB para ler e exibir a imagem é:
I = imread('foo.pgm');
imagesc(I);
E fica assim: