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

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 object. The axes object contains an object of type image.