imreducehaze

Уменьшите атмосферную дымку

Описание

пример

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

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

пример

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

Примеры

свернуть все

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

A = imread('foggysf1.jpg');

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

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

Figure contains an axes. The axes with title Hazy Image (Left) vs. Reduced Haze Image (Right) contains an object of type image.

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

A = imread('foggysf2.jpg');

Уменьшите 90% дымки используя approxdcp способ.

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

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

montage({A,B})

Figure contains an axes. The axes contains an object of type image.

Чтение и отображение туманного изображения.

A = imread('foggyroad.jpg');
imshow(A)
title('Hazy Image')

Figure contains an axes. The axes with title Hazy Image contains an object of type image.

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

[~,T] = imreducehaze(A);

Отображение измерения толщины дымки.

imshow(T)
title('Haze Thickness')

Figure contains an axes. The axes with title Haze Thickness contains an object of type image.

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

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

Отобразите предполагаемую глубину в ложном цвете.

imshow(D,[])
title('Depth Estimate')
colormap hot

Figure contains an axes. The axes with title Depth Estimate contains an object of type image.

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

свернуть все

Опасное изображение, заданное как 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

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

свернуть все

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

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

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

Алгоритмы

Модель для описания туманного изображения I является

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

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

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

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

Алгоритмы обезвреживания в imreducehaze выполните пять шагов:

  1. Оцените L атмосферного света использование темного канала до.

  2. Оцените карту передачи T.

  3. Уточните расчетную карту передачи.

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

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

Ссылки

[1] Он, Кайминг. «Удаление дымки с одним изображением с использованием Dark Channel Private». Дипломная работа, Китайский университет Гонконга. 2011.

[2] Dubok, et al. Single Image Dehazing with Image Entropy and Information Fidelity (неопр.) (недоступная ссылка). ICIP. 2014, стр 4037–4041.

Введенный в R2017b
Для просмотра документации необходимо авторизоваться на сайте