Выравнивание гистограммы (эквализация)

Функция histeqулучшает контраст изображения с помощью преобразования значений пикселов исходного изображения таким образом, чтобы гистограмма яркостей пикселов результирующего изображения приблизительно соответствовала некоторой предопределенной гистограмме. В результате её применения диапазон значений интенсивностей растягивается на весь отрезок возможных значений. Таким образом, визуально светлые пикселы становятся ещё более светлыми, а темные – более темными. Аналогично команде hist, histeq применима только к чёрно-белому, полутоновому и индексированному изображениям.

Функция Id=histeq(Im, n) преобразует исходное полутоновое изображение Im таким образом, чтобы результирующее полутоновое изображение Id имело гистограмму яркостей пикселов, близкую к равномерной. Равномерная гистограмма hgram создается из n столбцов. Чем меньше n по сравнению с количеством градаций яркости в изображении Im, тем более равномерной получается гистограмма яркостей пикселов результирующего изображения. По умолчанию значение n равно 64, и данный параметр можно не указывать при вызове функции. Если используется изображение в индексированном формате, то команда histeq имеет вид: histeq(X, map, hgram).

Пример 7.1.Применить команду histeqк фотографии дорожного полотна на рис. 1.

>> Pic='C:\road.JPG';

>> I=imread(Pic);

% чтение исходного изображения и вывод его на экран.

>> imshow(I);

>> Is=histeq(I);

% выравнивание гистограммы яркостей исходного

% полутонового изображения

>> subplot(1,2,1), imshow(I);

% вывод исходного и полученного

>> subplot(1,2,2), imshow(Is);

% изображения в одно окно

>> subplot(1,2,1), imhist(I);

% вывод гистограммы яркостей исходного

>> subplot(1,2,2), imhist(Is);

% и полученного изображения в одно окно

Результат:

Выравнивание гистограммы (эквализация) - student2.ru

Выравнивание гистограммы (эквализация) - student2.ru

Рис.1. Изображение и соответствующая гистограмма слева – исходное, справа – после выполнения функции histeq

Пример 7.2. Использовать функцию histeq для получения гистограммы Рис.2, где текстура неразличима. Применить histeq:

Выравнивание гистограммы (эквализация) - student2.ru Выравнивание гистограммы (эквализация) - student2.ru

Рис.2. Гистограмма изображения с неразличимой текстурой

Изменение интенсивности не заполняет весь отрезок от 0 до 250, что говорит о недостаточном контрасте изображения. Контрастность можно повысить одной из 3-х процедур histeq, imadjust и adapthisteq.

>> I2 = histeq(X);

>> figure, imshow(I2)

>> figure, imhist(I2)

Выравнивание гистограммы (эквализация) - student2.ru Выравнивание гистограммы (эквализация) - student2.ru

Рис.3. Изображение и его гистограмма

Команда imwrite записывает изображение на диск в одном из поддерживаемых форматов.

imwrite(A,filename,fmt), где А – изображение, filename – название под которым изображение будет записано на диск, fmt – формат записи.

Пример 7.3. Записать изображение в графический файл и просмотреть информацию о файле.

>> imwrite (I2, 'F:\Grafika\111','jpg');

% Запись файла на диск

>> imfinfo('F:\Grafika\111','jpg')

% Просмотр информации о файле:

Filename: 'F:\Grafika\111'

FileModDate: '14-Mar-2007 11:38:32'

FileSize: 11708

Format: 'jpg'

FormatVersion: ''

Width: 154

Height: 131

BitDepth: 8

ColorType: 'grayscale'

FormatSignature: ''

NumberOfSamples: 1

CodingMethod: 'Huffman'

CodingProcess: 'Sequential'

Comment: {}

Наши рекомендации