Можно опционально указать диапазон входных значений и выходных значений с помощью imadjust
. Вы указываете эти диапазоны в двух векторах, которые вы передаете imadjust
в качестве аргументов. Первый вектор задает минимум - и значения высокой интенсивности, которые вы хотите сопоставить. Второй вектор задает шкалу, по которой вы хотите сопоставить их.
Примечание
Необходимо задать интенсивность как значения между 0 и 1 независимо от класса I
. Если I
uint8
, значения, которые вы предоставляете, умножаются на 255, чтобы определить фактические значения, чтобы использовать; если I
uint16
, значения умножаются на 65 535. Чтобы узнать об альтернативном способе установить эти пределы автоматически, смотрите Установленные Пределы Корректировки Интенсивности Изображений Автоматически.
В этом примере показано, как указать, что контрастная корректировка ограничивает как область значений с помощью imadjust
функция. Этот пример уменьшает контраст изображения путем сужения области значений данных.
Считайте изображение в рабочую область.
I = imread('cameraman.tif');
Настройте контраст изображения, указав диапазон значений, используемых в выходном изображении. В примере ниже, слой человека является слишком темным, чтобы показать любую деталь. imadjust
сопоставляет область значений [0,51]
в uint8
введите изображение к [128,255]
в выходном изображении. Это значительно украшает изображение, и также расширяет динамический диапазон темных фрагментов оригинального изображения, делая намного легче видеть детали в слое. Обратите внимание, однако, что, потому что все значения выше 51 в оригинальном изображении сопоставлены с 255 (белыми) в откорректированном изображении, откорректированное изображение кажется размытым.
J = imadjust(I,[0 0.2],[0.5 1]);
Отобразите оригинальное изображение и контрастное откорректированное изображение.
imshowpair(I,J,'montage')
Для более удобного способа задать пределы, используйте stretchlim
функция. (imadjust
функционируйте использует stretchlim
для его самого простого синтаксиса, imadjust(I)
.)
Эта функция вычисляет гистограмму изображения и определяет пределы корректировки автоматически. stretchlim
функция возвращает эти значения как части в векторе, который можно передать как [low_in high_in]
аргумент к imadjust
; например:
I = imread('rice.png'); J = imadjust(I,stretchlim(I),[0 1]);
По умолчанию, stretchlim
использует значения интенсивности, которые представляют нижнюю часть 1% (0.01) и лучший 1% (0.99) из области значений как пределы корректировки. Путем обрезки экстремальных значений в обоих концах области значений интенсивности, stretchlim
делает больше комнаты в настроенном динамическом диапазоне для остающейся интенсивности. Но можно задать другие пределы области значений в качестве аргумента к stretchlim
. Смотрите stretchlim
страница с описанием для получения дополнительной информации.