Улучшите контраст с помощью коррекции гистограммы
J = histeq(I,hgram)
J = histeq(I,n)
[J,T] =
histeq(I)
newmap = histeq(X,map)
newmap = histeq(X,map,hgram)
[newmap,T]
= histeq(X,___)
преобразовывает полутоновое изображение J
= histeq(I
,n
)I
, возвращающийся в J
полутоновое изображение с n
дискретные уровни серого. Примерно равное количество пикселей сопоставлено с каждым из уровней n
в J
, так, чтобы гистограмма J
была приблизительно плоской. Гистограмма J
является более плоской, когда n
намного меньше, чем количество дискретных уровней в I
.
преобразовывает палитру, сопоставленную с индексируемым изображением newmap
= histeq(X
,map
,hgram
)X
так, чтобы гистограмма серого компонента индексируемого изображения (X
, newmap
) приблизительно совпадала с целевой гистограммой hgram
. Функция histeq
возвращает преобразованную палитру в newmap
. length(hgram)
должен совпасть с size(map,1)
.
Этот синтаксис не поддержан на графическом процессоре.
Когда вы предоставляете желаемую гистограмму hgram
, histeq
выбирает полутоновое преобразование T, чтобы минимизировать
где c0 является совокупной гистограммой A
, c1 является совокупной суммой hgram
для всей интенсивности k. Эта минимизация подвергается ограничениям, что T должен быть монотонным, и c1 (T (a)) не может промахнуться по c0 (a) больше чем половиной расстояния между количествами гистограммы в a. histeq
использует преобразование b = T (a), чтобы сопоставить уровни серого в X
(или палитра) к их новым значениям.
Если вы не задаете hgram
, то histeq
создает плоский hgram
,
hgram = ones(1,n)*prod(size(A))/n;
и затем применяет предыдущий алгоритм.