Как визуализировать данные с помощью MATLAB memmapfile? - PullRequest
0 голосов
/ 16 сентября 2011

Я пытаюсь прочитать некоторые данные из файла и вывести их как необработанные данные. Файл представляет собой изображение, и в выходной файл я записываю данные по 1 строке за раз.

В Matlab я делаю следующее:

bin_path = 'myfile.bin';
m = memmapfile(bin_path, 'Format', {'uint16', [5000 5000], 'im'});
disp(m)
figure, imagesc(m.Data.im), colormap(gray)

Чтобы попытаться отобразить данные, думая, что я получу изображение. Однако это не изображение, это просто набор черных, серых и белых линий.

Правильно ли настроена часть Matlab?

1 Ответ

1 голос
/ 16 сентября 2011

Похоже, что это может сработать, если ваш файл состоит ровно из 5000x5000x2 байтов, каждый из которых представляет пиксель в квадратном изображении.Использование memmapfile необычно - на самом деле, я даже не знал, что функция существует в Matlab.Было бы гораздо более типично просто использовать fread для чтения необработанного изображения.Если ваше изображение имеет стандартный формат файла (JPG, PNG и т. Д.), Используйте imread.

Предполагая, что ваше изображение действительно 5000 x 5000 x uint16, вы можете страдатьот проблемы порядка байтов.Попробуйте использовать fopen и fread для получения данных;fopen из Matlab принимает аргумент, говорящий о том, следует ли выполнять преобразование порядка байтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...