8 бит 2d массив в Matlab - PullRequest
       1

8 бит 2d массив в Matlab

0 голосов
/ 09 ноября 2011

У меня небольшая проблема с сохранением данных в массиве. Я хочу сохранить данные в виде 10001010 <- 8 бит в 2d массиве, содержащем 100 строк и 100 столбцов. то, что я делаю сейчас, это </p>

a = rand(100,100);
a = a * 127; // <<- this is done to make it 8 bits

Чтобы подтвердить, что я сделал, я сделал imshow для отображения изображения.

Когда a умножается на 127, большинство пикселей в градациях серого становится белым, но перед шагом умножения оно показывает хорошее изображение в градациях серого.

a = rand (100,100); enter image description here после a = a * 127; enter image description here

1 Ответ

1 голос
/ 09 ноября 2011

Если вы хотите 8-битное представление, это на самом деле 0-> 255, так как интенсивность изображения без знака.Matlab проверяет, к какому классу относится изображение при использовании imshow, если он двойной, ожидается диапазон 0-> 1.Следовательно, вам нужно привести изображение к uint8 после умножения, чтобы оно правильно отображалось.

a = rand(100,100);
a = a*255;
a = uint8(a);
imshow(a);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...