Какой эффективный и чистый способ прочитать 16-битные изображения PGM в Python с Numpy?
Я не могу использовать Pil для загрузки 16-битного PGM-изображения Из-за ошибки PIL . Я могу прочитать в заголовке следующим кодом:
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
Это печатает правильные данные: («p5 ',' ',' 640 ',' ',' 480 ',' ',' 65535 ')
Но у меня есть ощущение, что это не совсем лучший способ. И за пределы этого у меня проблемы с тем, как выяснить, как прочитать в следующих данных x by y (в этом случае 640x480) на 16-битное с смещением размера (заголовок)
.
Редактировать: добавлено изображение
код MATLAB для чтения и отображения изображения:
I = imread('foo.pgm');
imagesc(I);
и выглядит так: