Для улучшения визуального качества изображений, снятых в условиях слабой освещенности, и изображений с низким уровнем контраста, существует множество алгоритмов. Выбор наиболее подходящего алгоритма и его параметров является задачей нетривиальной и зависит от обрабатываемого изображения.
В большинстве случаев, для восстановление цветовых характеристик неравномерно освещенного изображения, справляется: линейная коррекция яркости и контраста, степенная(гамма) коррекция, и, логарифмическая коррекция (retinex).
Исходное изображение
Алгоритм Autolevel
Гамма коррекция
Линейная коррекция
Multi-Scale Retinex
В данном случае, на мой взгляд, все алгоритмы кроме линейной коррекции улучшили визуальное качество изображения.
Алгоритм Autolevel
Алгоритм Autolevel базируется на принципе: самый темный цвет на изображении является черным, а самый светлый белым. То есть, если изображения содержит небольшие очень яркие или очень темные участки, то есть большая вероятность что алгоритм не даст желаемого результата. Также Autolevel очень чувствителен к импульсному шуму.
Пример
Исходное изображение
Алгоритм Autolevel
Гамма-коррекция
Алгоритм «Гамма-коррекция» основан на степенном преобразовании интенсивностей пикселей изображения. В этом алгоритме интенсивность темных пикселей изображения увеличивается больше чем интенсивность светлых пикселей.
Гамма-коррекция
Retinex
Стоит отметить, что выше рассмотренные алгоритмы не учитывают локальные окрестности пикселей, поэтому, в тех случаях, когда изображение содержит, как и сильно темные, так и сильно светлые локальные области, эти алгоритмы не могут обеспечить качественное восстановление изображения. В данных ситуациях целесообразно применять алгоритм Retinex и его модификации.
Алгоритм SSR (Single-Scale Retinex) выравнивает освещенность изображения, сохраняя локальный контраст в плохо и ярко освещенных областях. Коррекция происходит по формуле:
R(x, y, sigma) = log[I(x, y)] — log[I(x, y)*G(x, y, sigma)]
где G — Ггауссиан, sigma — коэффициента размытия, а "*" — оператор свертки.
После применения SSR, основная часть полученных пикселей принадлежит диапазону [-1; 1], для визуализации изображения, значения необходимо нормализовать по формуле:
I = 255*I + 127
Алгоритм Single-Scale Retinex, sigma = 18
Алгоритм Single-Scale Retinex, sigma = 400
Алгоритм Single-Scale Retinex, sigma = 4000
Алгоритм MSR (Multi-Scale Retinex) — это взвешенная сумма SSR с разными коэффициентами размытия.
MSR = w1·SSR1 + w2·SSR2 +… + wn·SSRn
причем w1+w2+...+wn=1. Обычно, на практике n=3
Алгоритм Multi-Scale Retinex, sigma=7, 480, 4800
Алгоритмы Retinex применяется к яркостному каналу, поэтому, после него необходимо скорректировать хроматические компоненты, например линейно увеличив контрастность или насыщенность
Алгоритм Multi-Scale Retinex + коррекция контраста
Источники
- Все изображения взяты с сайта nasa.gov
- Информация об алгоритмах SSR и MSR тут
- Все фотографии обработаны с помощью онлайн фоторедактора retinex.net
Автор: drkernel