imreducehaze

Уменьшайте атмосферный туман

Описание

пример

[J,T,L] = imreducehaze(I) уменьшает атмосферный туман в цветном или полутоновом изображении I. Функция возвращает изображение dehazed J, оценка T из толщины тумана на уровне каждого пикселя и предполагаемого атмосферного светового сигнала L.

[___] = imreducehaze(I,amount) дополнительно задает сумму тумана, чтобы удалить.

пример

[___] = imreducehaze(___,Name,Value) изменяет поведение dehazing алгоритма с помощью пар "имя-значение".

Примеры

свернуть все

Считайте туманное изображение в рабочую область.

A = imread('foggysf1.jpg');

Уменьшайте туман и отобразите результат рядом с оригинальным изображением в монтаже.

B = imreducehaze(A);
montage({A,B})
title("Hazy Image (Left) vs. Reduced Haze Image (Right)")

Считайте туманное изображение в рабочую область.

A = imread('foggysf2.jpg');

Уменьшайте 90% тумана с помощью approxdcp метод.

B = imreducehaze(A,0.9,'method','approxdcp');

Отобразите в монтаже исходное туманное изображение и изображение с уменьшаемым туманом.

montage({A,B})

Считайте туманное изображение в рабочую область.

A = imread('foggyroad.jpg');

Уменьшайте туман в изображении с помощью значений параметров по умолчанию.

[~, T] = imreducehaze(A);

Отобразите результат вдоль стороны оригинальное изображение.

figure, imshowpair(A, T, 'montage')

Толщина тумана обеспечивает грубое приближение глубины сцены, заданной до неизвестного коэффициента умножения. Добавьте eps избегать log(0).

D = -log(1-T+eps);

В целях отображения масштабируйте глубину так, чтобы это было в [0,1].

D = mat2gray(D);

Отобразите оригинальное изображение рядом с предполагаемой глубиной в фиктивном цвете.

figure
subplot(1,2,1)
imshow(A), title('Hazy image')
subplot(1,2,2)
imshow(D), title('Depth estimate')
colormap(gca, hot(256))

Входные параметры

свернуть все

Туманное изображение в виде RGB или полутонового изображения.

Типы данных: single | double | uint8 | uint16

Сумма тумана, чтобы удалить в виде номера в области значений [0,1]. Когда значением является 1, imreducehaze уменьшает максимальную сумму тумана. Когда значением является 0, imreducehaze не уменьшает туман, и входное изображение неизменно. Большие значения могут вызвать более серьезное искажение цвета.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: B = imreducehaze(A,0.9,'method','approxdcp');

Метод раньше уменьшал туман в виде разделенной запятой пары, состоящей из 'Method' и одно из этих значений:

  • 'simpledcp' — Простой темный предыдущий метод канала [2]. Этот метод использует темный канал на пиксель, чтобы оценить, что туман и разложение дерева квадрантов оценивают атмосферный свет.

  • 'approxdcp' — Аппроксимируйте темный предыдущий метод канала [1]. Этот метод использует и и пространственные блоки на пиксель при вычислении темного канала и не использует разложение дерева квадрантов.

Для получения дополнительной информации см. Алгоритмы.

Типы данных: char | string

Максимальное значение, которое будет обработано как туман в виде разделенной запятой пары, состоящей из 'AtmosphericLight' и 1 3 числовой вектор для изображений RGB или числовой скаляр для полутоновых изображений. Значения должны быть в области значений [0, 1]. Атмосферные легкие значения, больше, чем 0,5, имеют тенденцию давать лучшие результаты.

Если вы не задаете AtmosphericLight, затем imreduzehaze функционируйте оценивает значение в зависимости от значения 'method'.

Типы данных: double

Контрастный метод улучшения в виде разделенной запятой пары, состоящей из 'ContrastEnhancement' и 'global', 'boost', или 'none'.

Типы данных: char | string

Сумма усиления на пиксель, чтобы применяться как постобрабатывающий в виде разделенной запятой пары, состоящей из 'BoostAmount' и номер в области значений [0, 1]. Этот аргумент только поддержан если ContrastEnhancement задан как 'boost'.

Типы данных: double

Выходные аргументы

свернуть все

Изображение Dehazed, возвращенное как числовой массив одного размера с входом туманное изображение I.

Толщина тумана оценивается на уровне каждого пикселя, возвращенного как числовой массив.

Предполагаемый атмосферный свет, возвращенный как числовой массив. L представляет значение самого яркого незеркального тумана.

Алгоритмы

Модель, чтобы описать туманное изображение I

I(x) = J(x)T(x) + L(1-T(x))
I наблюдаемая интенсивность, J сияние сцены, L атмосферный свет и T карта передачи, описывающая фрагмент света, который достигает камеры.

Алгоритмы Dehazing восстанавливают сияние сцены (dehazed изображение) J от оценки карты передачи и атмосферного света согласно:

J(x) = (I(x)-A)/(max(t(x),t0)) + A

imreducehaze использование два различных dehazing алгоритма, simpledcp и approxdcp. Эти методы оба используют dark channel prior, который основан на наблюдении, что нетуманные изображения наружных сцен обычно содержат некоторые пиксели, которые имеют низкий сигнал в одном или нескольких цветовых каналах. Методы отличаются по тому, как они оценивают темный канал предшествующий и атмосферный свет.

dehazing алгоритмы в imreducehaze выполните пять шагов:

  1. Оцените атмосферный световой сигнал L использование темного предшествующего канала.

  2. Оцените, что передача сопоставляет T.

  3. Совершенствуйте предполагаемую карту передачи.

  4. Восстановите изображение.

  5. Выполните дополнительное контрастное улучшение.

Ссылки

[1] Он, Kaiming. "Одно удаление тумана изображений Используя темный предшествующий канал". Тезис, Китайский университет Гонконга. 2011.

[2] Dubok, и др. "Одно Изображение Dehazing с Точностью Энтропии и информации Изображений". ICIP. 2014, стр 4037–4041.

Введенный в R2017b