Восстановление неравномерно освещенных изображений

в 14:17, , рубрики: Алгоритмы, обработка изображений

Для улучшения визуального качества изображений, снятых в условиях слабой освещенности, и изображений с низким уровнем контраста, существует множество алгоритмов. Выбор наиболее подходящего алгоритма и его параметров является задачей нетривиальной и зависит от обрабатываемого изображения.

image image

В большинстве случаев, для восстановление цветовых характеристик неравномерно освещенного изображения, справляется: линейная коррекция яркости и контраста, степенная(гамма) коррекция, и, логарифмическая коррекция (retinex).

Исходное изображение
image

Алгоритм Autolevel
image

Гамма коррекция
image

Линейная коррекция
image

Multi-Scale Retinex
image

В данном случае, на мой взгляд, все алгоритмы кроме линейной коррекции улучшили визуальное качество изображения.

Алгоритм Autolevel

Алгоритм Autolevel базируется на принципе: самый темный цвет на изображении является черным, а самый светлый белым. То есть, если изображения содержит небольшие очень яркие или очень темные участки, то есть большая вероятность что алгоритм не даст желаемого результата. Также Autolevel очень чувствителен к импульсному шуму.

Пример

Исходное изображение
image

Алгоритм Autolevel
image

Гамма-коррекция

Алгоритм «Гамма-коррекция» основан на степенном преобразовании интенсивностей пикселей изображения. В этом алгоритме интенсивность темных пикселей изображения увеличивается больше чем интенсивность светлых пикселей.

Гамма-коррекция
image

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
image

Алгоритм Single-Scale Retinex, sigma = 400
image

Алгоритм Single-Scale Retinex, sigma = 4000
image

Алгоритм 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
image

Алгоритмы Retinex применяется к яркостному каналу, поэтому, после него необходимо скорректировать хроматические компоненты, например линейно увеличив контрастность или насыщенность

Алгоритм Multi-Scale Retinex + коррекция контраста
image

Источники

  • Все изображения взяты с сайта nasa.gov
  • Информация об алгоритмах SSR и MSR тут
  • Все фотографии обработаны с помощью онлайн фоторедактора retinex.net

Автор: drkernel

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js