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