Можно автоматически настроить значения интенсивности пикселей изображения с помощью гистограммы эквализации. Гистограмма эквализации включает преобразование значений интенсивности так, чтобы гистограмма выходного изображения приблизительно совпадала с заданной гистограммой. По умолчанию функция гистограммы эквализации, histeq, пытается соответствовать плоской гистограмме с 64 интервалами, но можно вместо этого задать другую гистограмму.
В этом примере показано, как использовать гистограмму эквализации, чтобы настроить контрастность полутонового изображения. Оригинальное изображение имеет низкую контрастность, большинство пиксельных значений находятся в середине области значений интенсивности. histeq формирует выходное изображение с пиксельными значениями, равномерно распределенными по области значений.
Чтение изображения в рабочую область.
I = imread('pout.tif');Отобразите изображение и его гистограмму.
figure subplot(1,2,1) imshow(I) subplot(1,2,2) imhist(I,64)

Настройте контраст с помощью гистограммы эквализации. В этом примере функция гистограммы эквализации, histeq, пытается соответствовать плоской гистограмме с 64 интервалами, что является поведением по умолчанию. Вместо этого можно задать другую гистограмму.
J = histeq(I);
Отобразите скорректированное на контраст изображение и его новую гистограмму.
figure subplot(1,2,1) imshow(J) subplot(1,2,2) imhist(J,64)

Этот пример показывает, как построить график кривой преобразования для гистограммы эквализации. histeq может вернуть вектор 1 на 256, который показывает, для каждого возможного входного значения, полученное выходное значение. (Значения в этом векторе находятся в области значений [0,1], независимо от класса входного изображения.) Можно построить график этих данных, чтобы получить кривую преобразования.
Чтение изображения в рабочую область.
I = imread('pout.tif');Настройте контраст с помощью гистограммы эквализации, используя histeq функция. Задайте возвращаемое значение преобразования серой шкалы, T, который является вектором, который отображает градации серого в изображении интенсивности I до серых уровней в J.
[J,T] = histeq(I);
Постройте график кривой преобразования. Заметьте, как эта кривая отражает гистограммы на предыдущем рисунке, с входными значениями в основном между 0,3 и 0,6, в то время как выходные значения распределены равномерно между 0 и 1.
figure plot((0:255)/255,T);
