конвертировать 16-битные изображения в 8-битные с пользовательским уровнем гаммы, используя Matlab

У меня есть изображение tif в 16-битном формате. Теперь я хочу преобразовать этот набор данных в 8-битное изображение RGB для экспорта в формате jpg.

Если я использую

RGB8 = im2uint8(imageData);

тогда у меня есть матрица только с 255 значениями, что неверно, поскольку гистограмма имеет только значения от 0 до 16000 с максимальным значением 700 (максимальное значение 16 бит составляет около 65500)

Также я хочу настроить уровень гаммы на 0,45, что означает, что я не хочу линейного сопоставления значений с яркостью в каждом цвете.

Как бы я сделал это с Matlab?


person Matthias Pospiech    schedule 22.03.2012    source источник
comment
Я не уверен, что понимаю. Вы перешли на 8-битную глубину цвета, но считаете, что всего 255 значений неправильно? Кроме того, что вы подразумеваете под значениями от 0 до 16000 с максимальным значением 700?   -  person Oliver Charlesworth    schedule 22.03.2012
comment
tif 16-битный, поэтому возможные значения находятся в диапазоне от 0 до ~ 65500. Камера 14-битная, поэтому фактические значения только от 0 до ~16000. Снимок, сделанный камерой, имеет гистограмму с максимумом 700.   -  person Matthias Pospiech    schedule 23.03.2012


Ответы (2)


Базовая гамма-коррекция подчиняется степенному закону. Вы можете сделать это в Matlab как:

img_out = img_in .^ gamma;
person Oliver Charlesworth    schedule 22.03.2012

Я решил это сейчас с помощью следующего кода:

% reads 16 bit tif image
imageRGB16 = imread(importName);
% convert to 14 bit 
imageRGB14 = imageRGB16 * 4;
% apply gamma correction
imageRGBGamma = imadjust(imageRGB14,[],[], 0.45);
% convert to 8 bit
imageRGB8 = im2uint8(imageRGBGamma);
% imshow(imageRGB8);
% export to jpg
imwrite(imageRGB8,exportImportName,'jpg', 'Quality', 90)

Полученные изображения имеют те же цвета и яркость, что и исходные изображения с камеры, просмотренные с помощью специального программного обеспечения, чего я и хотел.

person Matthias Pospiech    schedule 22.03.2012