Как я могу уменьшить уровни яркости изображения в MATLAB? - PullRequest
2 голосов
/ 12 июля 2011

Как уменьшить уровни яркости изображения в MATLAB?Например, от 256 (в 8-битных изображениях) до 10?

Ответы [ 2 ]

3 голосов
/ 12 июля 2011

Я бы порекомендовал следующий код, который может выполнить то, что вы ищете более непосредственно:

srcBitDepth = 8;
dstBitDepth = 2;

img = imread('cameraman.tif');
subplot(1,2,1); imshow(img,[]);

img = bitshift(img, dstBitDepth-srcBitDepth);
subplot(1,2,2); imshow(img,[]);

Вот результат:

Bit reduction

Обратите внимание на уменьшение битов от исходного 8-битного изображения до 2-битного изображения.

2 голосов
/ 12 июля 2011

Чтобы преобразовать изображение из X уровней graylevel в изображение с Y graylevels, вы можете написать

modifiedImage = round( double(rawImage)/X * Y);

Затем вы можете преобразовать modifiedImage в целочисленный формат по вашему выбору, например uint8

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