Как работает HDR, как сделать эффект HDR
Я прочитал блог выравнивания гистограммы для улучшения изображения, который дает 7 шагов для преобразования обычных изображений в изображение HDR (ниже). Говорят, что программа C/C++ для выравнивания гистограмм может быть легко написана с использованием библиотеки Open Computer Vision или OpenCV. Основные этапы такой программы включают в себя:
Прочитайте входное изображение. Это может быть в любом формате изображения благодаря OpenCV. Это входное изображение содержит
n
пиксели:n = height × width
Конвертировать из RGB (любопытно, сохраненный в порядке синего, зеленого, красного в OpenCV) в HSV: оттенок, насыщенность и значение.
Рассчитайте гистограмму входного изображения. Это массив из 256 значений, где
H[x]
содержит количество пикселей со значениемx
,Рассчитать накопительную функцию плотности гистограммы. Это массив из 256 значений, где
cdf[x]
содержит количество пикселей со значениемx
или менее:cdf[x] = H[0] + H[1] + H[2] + ... + H[x]
Перебрать
n
пикселей во всем изображении и заменить значение на каждомi
ТочкаV[i] <-- floor(255*(cdf[V[i]] - cdf[0])/(n - cdf[0]))
Конвертируйте изображение обратно из HSV в RGB.
Сохраните изображение в нужном формате и имя файла.
На шаге 3 я не понимаю что H[x]
является? Есть ли x
обратитесь к значениям R, G, B или H, S или V? Кроме того, на шаге 5, что означает значение i
?
1 ответ
Первый вопрос:
H (x) - гистограмма изображения.
Гистограмма цифрового изображения с уровнями интенсивности в диапазоне [0, 255] представляет собой дискретную функцию h(r_k) = n_k, где r_k - это значение k-й интенсивности, а n_k - количество пикселей в изображении с интенсивностью r_k.
От: Цифровая обработка изображений Третье издание Гонсалес / Вудс стр. 120
Второй вопрос: что я?
я переменная зацикливание на картинке.