Что такое эффективный и понятный способ чтения 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 на y (в данном случае 640x480) на 16 бит со смещением size(header)
.
РЕДАКТИРОВАТЬ: ИЗОБРАЖЕНИЕ ДОБАВЛЕНО
Код MATLAB для чтения и отображения изображения:
I = imread('foo.pgm');
imagesc(I);
И выглядит так: