exponenta event banner

Задание пределов регулировки контрастности

Можно дополнительно указать диапазон входных значений и выходных значений с помощью 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')

Figure contains an axes. The axes contains an object of type image.

Автоматически устанавливать пределы регулировки интенсивности изображения

Для более удобного способа определения пределов используйте 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 для получения дополнительной информации.