exponenta event banner

Гамма-коррекция

imadjust карты low кому bottom, и high кому top. По умолчанию значения между low и high отображаются линейно в значения между bottom и top. Например, значение на полпути между low и high соответствует значению на полпути между bottom и top.

imadjust может принять дополнительный аргумент, указывающий коэффициент гамма-коррекции. В зависимости от значения гамма-излучения отображение между значениями во входном и выходном изображениях может быть нелинейным. Например, значение на полпути между low и high может соответствовать значению, большему или меньшему, чем значение на полпути между bottom и top.

Гамма может быть любым значением между 0 и бесконечностью. Если гамма равна 1 (по умолчанию), отображение является линейным. Если гамма меньше 1, отображение взвешивается в сторону более высоких (ярких) выходных значений. Если гамма больше 1, отображение взвешивается в сторону более низких (темных) выходных значений.

Рисунок иллюстрирует эту взаимосвязь. Три кривые преобразования показывают, как отображаются значения, когда гамма меньше, равна и больше 1. (На каждом графике ось x представляет значения интенсивности на входном изображении, а ось y представляет значения интенсивности на выходном изображении.)

Графики, показывающие три различных параметра гамма-коррекции

Задание гаммы при настройке контрастности

В этом примере показано, как задать гамма при настройке контраста с функцией imadjust. По умолчанию imadjust использует значение гамма 1, что означает, что он использует линейное отображение между значениями интенсивности в исходном изображении и выходном изображении. Гамма-значение меньше 1 весит отображение в сторону более высоких (ярких) выходных значений. Гамма-значение более 1 весит выходные значения в сторону более низких (темных) выходных значений.

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

[X,map] = imread('forest.tif');
I = ind2gray(X,map);

Отрегулируйте контрастность, задав значение гамма менее 1 (0,5). Обратите внимание, что в вызове imadjust, в примере определяются диапазоны данных входного и выходного изображений в виде пустых матриц. При указании пустой матрицы imadjust использует диапазон по умолчанию [0,1]. В примере оба диапазона остаются пустыми. Это означает, что гамма-коррекция применяется без какой-либо другой корректировки данных.

J = imadjust(I,[],[],0.5);

Отображение исходного изображения с настроенным на контраст изображением.

imshowpair(I,J,'montage')

Figure contains an axes. The axes contains an object of type image.