Улучшите контраст с помощью эквализации гистограммы
преобразовывает полутоновое изображение J = histeq(I,n)I, возврат в J полутоновое изображение с n дискретные уровни серого. Примерно равное количество пикселей сопоставлено с каждым n уровни в J, так, чтобы гистограмма J является приблизительно плоским. Гистограмма J является более плоским когда n намного меньше, чем количество дискретных уровней в I.
преобразовывает палитру, сопоставленную с индексируемым изображением newmap = histeq(X,map,hgram)X так, чтобы гистограмма серого компонента индексируемого изображения (Xnewmap ) приблизительно совпадает с целевой гистограммой 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;
и затем применяет предыдущий алгоритм.