Динамическая область значений относится к области значений уровней яркости, от темного до светлого. Динамическая область значений реальных сцен может быть довольно высоким. Изображения с высокой динамической областью значений (HDR) пытаются захватить всюсь тональную область значений реальных сцен (называемых scene-referred), используя 32-битные значения с плавающей точкой для хранения каждого цветового канала. Изображения HDR содержат высокий уровень детализации, близкий к области значений человеческого зрения. Тулбокс включает функции для чтения, создания и записи HDR- изображений. Тулбокс также включает операторов тон-карты для создания изображений с низкой динамической областью значений (LDR) из HDR-изображений для обработки и отображения.
Чтение изображения HDR в MATLAB® рабочая область, используйте hdrread функция.
hdr_image = hdrread('office.hdr');Выходное изображение hdr_image является m -by- n -by-3 изображением типа данных single.
whos
Name Size Bytes Class Attributes hdr_image 665x1000x3 7980000 single
Область значений данных превышает область значений [0, 1], ожидаемый от данных LDR.
hdr_range = [min(hdr_image(:)) max(hdr_image(:))]
hdr_range =
1×2 single row vector
0 3.2813Многие функции тулбокса предполагают, что изображения типа данных single и double являются изображениями с данными в области значений [0, 1]. Поскольку данные HDR не связаны с областью значений [0, 1] и могут содержать Inf значения, необходимо тщательно изучить поведение каждой функции при работе с данными.
Некоторые функции обрезают значения вне ожидаемой области значений, прежде чем продолжать обработку данных. Эти функции могут вернуть неожиданные результаты, потому что обрезка приводит к потере информации.
Некоторые функции ожидают данных в области значений [0, 1], но не корректируют данные перед их обработкой. Эти функции могут вернуть неправильные результаты.
Некоторые функции ожидают реальных данных. Если ваше изображение HDR содержит значения Inf, тогда эти функции могут вернуть неожиданные результаты.
Некоторые функции не имеют ограничений на область значений входных данных. Эти функции принимают и обрабатывают данные HDR правильно.
Для работы с функциями, которые требуют данных LDR, можно уменьшить динамическую область значений изображения с помощью процесса, называемого tone mapping. Отображение тонов масштабирует данные HDR в область значений [0, 1] при попытке сохранить внешний вид оригинального изображения. Функции отображения тональных сигналов, такие как tonemap, tonemapfarbman, и localtonemap дают более точные результаты, чем простое линейное перемасштабирование, такое как выполненное rescale функция. Однако обратите внимание, что отображение тонов приводит к потере тонкой информации и деталей.
Чтобы отобразить изображения HDR, необходимо выполнить отображение тональных сигналов. Для получения примера смотрите Отображение High Dynamic Области значений Image.
Чтобы создать HDR-изображение из группы изображений с низкой динамической областью значений, используйте makehdr функция. Обратите внимание, что изображения с низкой динамической областью значений должны быть пространственно зарегистрированы, а файлы изображений должны содержать метаданные EXIF. Задайте изображения низкой динамической области значений в массиве ячеек.
hdr_image = makehdr(files);
Чтобы записать HDR- изображения из рабочей области в файл, используйте hdrwrite функция.
hdrwrite(hdr,'filename');hdrread | hdrwrite | localtonemap | makehdr | tonemap | tonemapfarbman