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

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')