tonemapfarbman

Преобразуйте изображение HDR в LDR с помощью краевых многомасштабных разложений

Описание

пример

LDR = tonemapfarbman(HDR) преобразует изображение с высокой динамической областью значений (HDR) в изображение с низкой динамической областью значений (LDR), подходящее для отображения, используя процесс, называемый краеугольно-сохраняющими разложениями для многомасштабной манипуляции тоном и детализацией.

LDR = tonemapfarbman(HDR,Name,Value) использует одну или несколько пары "имя-значение", чтобы управлять различными аспектами отображения тональных сигналов.

Примеры

свернуть все

Загрузите изображение с высокой динамической областью значений (HDR) в рабочую область.

HDR = hdrread('office.hdr');

Преобразуйте изображение HDR в изображение с низкой динамической областью значений (LDR) с помощью базовой функции отображения тональных сигналов tonemap. Отобразите результат. Изображение LDR имеет приемлемую динамическую область значений, но цвета приглушены.

LDR = tonemap(HDR);
imshow(LDR)

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

Повторите преобразование с помощью tonemapfarbman функция со значениями аргументов по умолчанию. Отобразите результат. Цвета появляются более насыщенными, чем в изображении LDR, созданном с помощью tonemap функция. Однако изображение яркое и имеет плохую контрастность, например, в тени дерева. Яркость и плохая контрастность указывают, что значение по умолчанию 'Exposure' слишком велик.

RGB = tonemapfarbman(HDR);
imshow(RGB)

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

Повторите преобразование с помощью tonemapfarbman функция с меньшим значением 'Exposure' чтобы затемнить изображение. Отобразите результат. Контрастность изображения улучшена. Изображение также показывает уменьшение усечения значений пикселей в ярких областях, таких как небо, дорога и монитор.

RGB2 = tonemapfarbman(HDR,'Exposure',1.5);
imshow(RGB2)

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

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

свернуть все

Изображение с высокой динамической областью значений, заданное как m -by- n матрица или m -by- n -by-3 массив.

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

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

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

Пример: LDR = tonemapFarbman(HDR,'Saturation',2.1);

Сжатие области значений, заданное как разделенная разделенными запятой парами, состоящая из 'RangeCompression' и число в области значений [0, 1]. Значение 1 представляет максимальное сжатие и значение 0 представляет минимальное сжатие.

Насыщение, заданная как разделенная разделенными запятой парами, состоящая из 'Saturation' и неотрицательное число. Рекомендуемая область значений для 'Saturation' равен [0, 5]. Когда значение насыщения увеличивается, цвета становятся более насыщенными и интенсивными. Когда значение насыщения уменьшается, цвета исчезают до серого. The 'Saturation' аргумент не влияет на полутоновый цвет HDR изображения.

Экспозиция, заданная как разделенная разделенными запятой парами, состоящая из 'Exposure' и положительное число. Рекомендуемая область значений для 'Exposure' равен (0, 5]. Когда это значение уменьшается, длина экспозиции уменьшается, поэтому изображение темнеет. Когда это значение увеличивается, длина экспозиции увеличивается, поэтому изображение светится.

Количество шкал, заданное как разделенная разделенными запятой парами, состоящая из 'NumberOfScales' и положительное целое число. Рекомендуемая область значений для 'NumberOfScales' является [1, 5]. Количество шкал по умолчанию является длиной (Weights) когда вы задаете 'Weights'. В противном случае количество шкал по умолчанию 3.

Веса слоев деталей, заданные как разделенная разделенными запятой парами, состоящая из 'Weights' и n элемент положительных чисел, где n - количество шкал, заданное 'NumberOfScales'. Рекомендуемая область значений каждого элемента в Weights равен (0, 3]. Значение по умолчанию 'Weights' является n -элементным числовым вектором со всеми элементами, установленными на 1.5. Для Weights < 1, количество деталей в выходном изображении уменьшается и Weights > 1, количество деталей в выходном изображении увеличивается.

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

свернуть все

Изображение с низкой динамической областью значений, заданное как числовой массив того же размера, что и HDR.

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

Совет

  • Эта функция использует анизотропный диффузионный фильтр, imdiffusefiltдля приближения взвешенного фильтра методом наименьших квадратов, как предложено Farbman et al. [1]

Ссылки

[1] Farbman, Z., R. Fattal, D. Lischinski, and R. Szeliski. «Edge-Preserving Decompositions for Multi-Scale Tone and Detail манипуляция ссылка). Транзакции ACM на графике. Том 27, № 3, август 2008 года, стр. 1-10.

Введенный в R2018b