Можно опционально задать область значений значений входа и выхода значений с помощью imadjust. Вы задаете эти области значений в двух векторах, в которые передаете imadjust как аргументы. Первый вектор задает значения низкой и высокой интенсивности, которые вы хотите сопоставить. Второй вектор задает шкалу, по которой вы хотите их сопоставить.
Примечание
Необходимо задать интенсивность как значения от 0 до 1 независимо от класса I. Если I является uint8, значения, которые вы поставляете, умножаются на 255, чтобы определить фактические значения для использования; если I является uint16значения умножаются на 65535. Чтобы узнать об альтернативном способе автоматического задания этих пределов, смотрите раздел «Автоматическое задание пределов корректировки интенсивности изображения».
В этом примере показано, как задать пределы корректировки контаста как область значений с помощью 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 функция. (The imadjust функция использует stretchlim для простейшего синтаксиса, imadjust(I).)
Эта функция вычисляет гистограмму изображения и определяет пределы корректировки автоматически. The 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 Страница с описанием для получения дополнительной информации.