Как работает HDR, как сделать эффект HDR

Я прочитал блог выравнивания гистограммы для улучшения изображения, который дает 7 шагов для преобразования обычных изображений в изображение HDR (ниже). Говорят, что программа C/C++ для выравнивания гистограмм может быть легко написана с использованием библиотеки Open Computer Vision или OpenCV. Основные этапы такой программы включают в себя:

  1. Прочитайте входное изображение. Это может быть в любом формате изображения благодаря OpenCV. Это входное изображение содержит n пиксели: n = height × width

  2. Конвертировать из RGB (любопытно, сохраненный в порядке синего, зеленого, красного в OpenCV) в HSV: оттенок, насыщенность и значение.

  3. Рассчитайте гистограмму входного изображения. Это массив из 256 значений, где H[x] содержит количество пикселей со значением x,

  4. Рассчитать накопительную функцию плотности гистограммы. Это массив из 256 значений, где cdf[x] содержит количество пикселей со значением x или менее:cdf[x] = H[0] + H[1] + H[2] + ... + H[x]

  5. Перебрать n пикселей во всем изображении и заменить значение на каждом iТочка V[i] <-- floor(255*(cdf[V[i]] - cdf[0])/(n - cdf[0]))

  6. Конвертируйте изображение обратно из HSV в RGB.

  7. Сохраните изображение в нужном формате и имя файла.

На шаге 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

Второй вопрос: что я?

я переменная зацикливание на картинке.

Другие вопросы по тегам